Код с минимальныи изменениями для решения твоей проблемы
string word = search_txbx.Text.;
ObservableCollection<Model.Game> games = _ViewModel.Games;
var query = from db in games
where db.name.Contains(word, StringComparer.InvariantCultureIgnoreCase)
select db;
games_dgrd.ItemsSource = query;
Советую ознакомится с другими способами сравнения строк
Мне кажется допущена ошибка логиги нужно присваивать ItemsSource к ObservableCollection games(зарание созданном посредвом Linq) а не к IEnumerable получаемом в результате Linq операций