abdou_31 Ответов: 1

Флажок потерян в событии textchanged (фильтрация )


У меня есть datagridView , и я пытаюсь отфильтровать некоторую строку с помощью Id row, она работает нормально, но проблема в том , что, например, когда я проверяю столбец datagridCheckboxColumn и нажимаю в поле поиска ( событие TextChanged), я потерял проверенные элементы

Как я могу восстановить проверенные элементы, когда я использую поле поиска?

Что я уже пробовал:

private void Idtxt_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (Idtxt.Text.ToString().Equals(""))
            {
                DataGrid.ItemsSource = dataModelList; 

            }
           List<DataGridModel> filtered = dataModelList.Where(DataGridModel => DataGridModel.workId.StartsWith(Idtxt.Text)).ToList();
        
            DataGrid.ItemsSource = filtered;

1 Ответов

Рейтинг:
1

Gerry Schmitz

Установив ".ItemSource", вы заново привязываете сетку (и "теряете" то, что там было). Вам нужно "представление", которое не изменяет источник элемента после того, как вы "проверили" (поскольку не очевидно, что вы действительно распространяете изменения).

Группировка, сортировка и фильтрация данных в элементе управления DataGrid - WPF .NET Framework | Microsoft Docs[^]