Я использую IValueConverter в сочетании с DataTriggers (все в коде, а не XAML) для реализации условного моделирования для WPF DataGrid (из codeplex.com). У меня есть весь код на месте, но когда я обновляю стиль (после получения некоторых значений из элементов формы), сетка данных не обновляет отображение элементов. Мне нужно вручную вызвать this.dataGrid.InvalidateVisual()
, а затем прокрутить вниз и назад, чтобы элементы сетки обновились. Есть ли лучший способ сделать что-то?
Я пытался использовать this.dataGrid.Items.Refresh()
, но это вызывает повторное связывание данных сетки (которых может быть тысячи строк), что, в свою очередь, вызывает огромный скачок в потреблении памяти моей программой. Кто-нибудь знает, как вручную перерисовать сетку данных WPF? Я также попытался сделать this.dataGrid.Dispatcher.Invoke((Action)(() => {}));
, чтобы заставить диспетчера выполнить операцию, которая приведет к перерисовке, но безрезультатно. Любые предложения приветствуются.