Не могу поверить, что я в тупике с этой довольно простой практикой. Я изначально разместил это в дискуссиях WPF datagrid codeplex, но не получил ответа. Поэтому я пытаюсь здесь:Пересылка на WPF Datacrid's Datacontext
Я не могу найти способ сделать это. Я создаю datagrid, чей datacontext изначально заполнен строками из таблицы. Я реализовал функцию поиска, которая вернет несколько строк на основе условия. Предположим, я хочу отображать только те строки, как я могу уничтожить первоначально созданный файл данных и добавить недавно отфильтрованную коллекцию?
я наивно начал делать это так:
(Late Edit: я не могу набрать Generics код здесь - бросок в следующей строке suppoed бросить datagrid.Items к MyType (например,))
IEnumerable rows = datagrid.Items.Cast();
IEnumerable filtersRows = rows.Where (row => row.someCondition == true);
как мне теперь сделать мой datagrid только отфильтрованные? Только что:
datagrid.DataContext = null;
datagrid.DataContext = filtersRows;
не работает (даже если запах глупо по какой-либо причине).
Мне также нужно сделать обратное (как только я получу эту работу). Некоторая кнопка позволяет пользователю «очистить» результаты поиска и снова подключить DataContext к «строкам» (в приведенном выше фрагменте).
Что мне не хватает?
, что происходит, когда вы назначаете dataGrid.DataContext = filteredRows? Это должно сработать, подумал я. –
Если вы добавите '' тики вокруг вашего кода, вы также сможете опубликовать общий код. – Oskar
Очевидно, что это нужно, чтобы назначить этот делегат (который фильтрует строки) непосредственно в свойство Filter коллекции Items. Я собираюсь попробовать это, как только приеду на работу. Я расскажу о том, как все получается. – 2009-06-10 13:58:04