Перепривязка к текстовому тексту WPF Datagrid - PullRequest
2 голосов
/ 10 июня 2009

Не могу поверить, что я озадачен этой довольно простой вещью. Первоначально я опубликовал это в обсуждениях кодового комплекса WPF, но не получил ответа. Итак, я пытаюсь здесь:

Я не могу найти способ сделать это. Я создаю сетку данных, чей текст данных изначально заполнен строками таблицы. Я реализовал функцию поиска, которая будет возвращать несколько строк в зависимости от условия. Предположим, я хочу отобразить только эти строки, как мне уничтожить изначально созданный текстовый текст и добавить только что отфильтрованную коллекцию?

Я наивно начал делать это так:

(Позднее редактирование. Кажется, я не могу набрать здесь код Generics - приведение в следующей строке предполагается для приведения datagrid. Элементы в MyType (например))

IEnumerable rows = datagrid.Items.Cast ();

IEnumerable FilterRows = rows.Where (row => row.someCondition == true);

как мне сделать так, чтобы моя сетка данных отображала только отфильтрованные строки? Просто делаю:

datagrid.DataContext = null;

datagrid.DataContext = FilterRows;

не работает (даже пахнет по какой-то причине).

Мне также нужно сделать обратное (как только я получу эту работу). Некоторое нажатие кнопки должно позволить пользователю «очистить» результаты поиска и снова подключить DataContext к «строкам» (в приведенном выше фрагменте).

Чего мне не хватает?

Ответы [ 4 ]

3 голосов
/ 29 июня 2010

Я сталкивался с подобной проблемой. Необходимо повторно применить конвертеры в моей DataGrid после изменения некоторых значений стиля.

Для меня это сработало:

myGrid.Items.Refresh()

Похоже, что все правила применяются повторно, поэтому они могут работать на вас.

1 голос
/ 08 февраля 2011

myGrid.Items.Refresh () тоже работает для меня, просто переустановите контекст до

public void GridExamsRefresh()
{
  grdExamenes.ItemsSource = (this.objPacienteOfContext).Exams;
  grdExamenes.Items.Refresh();
}
0 голосов
/ 21 июля 2009

Вы пытались установить свойство ItemsSource?

0 голосов
/ 10 июня 2009

Кажется, что в этом вопросе возникли некоторые похожие проблемы. В комментариях он даже говорит, что установление нулевого значения для datacontext и последующее переназначение его не работает.

Возможно, вам нужно изменить коллекцию предметов, как указано в этом ответе?

...