Быстрый вопрос.Знайте, когда изменился цвет строки + WPF + DataGrid
У меня есть DataGrid, который автоматически обновляется через SQL-Dependency. , и у меня есть триггер, настроенный для изменения BackgroundProperty на цвет, основанный на нескольких значениях (красных или зеленых). Я действительно надеялся использовать eventetter с моим триггером.
Мой вопрос: какой пожарный человек срабатывает, когда триггер меняет фон? Ive пытался DependencyPropertyDescriptor - который работает при проверке ItemsSource изменилось, но НЕ DataGridRow.BackgroundProperty или Control.BackgroundProperty (просто не срабатывает) с моей DependencyProperty как
var desc = DependencyPropertyDescriptor.FromProperty(ItemsControl.ItemsSourceProperty, typeof(Control));
desc.AddValueChanged(MyDataGrid,MyEventHandler);
с моим событием, как это:
DataGrid mygrid = sender as DataGrid;
var itemsSource = mygrid.ItemsSource as IEnumerable;
if (null != itemsSource)
{
foreach (var item in itemsSource)
{
var row = mygrid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
if (null != row)
{
if (Equals(Brushes.Red, row.Background))
{
//Do whatever
}
}
}
}
, но строка всегда равна нулю - почему это ?. EDIT: он возвращает null, потому что он виртуализирован и не находится в режиме просмотра.
Я надеялся, чтобы быть в состоянии создать EventHandler пойти с eventsetter в моей DataTrigger
Спасибо заранее.
Несомненно, ваш 'Trigger' изменяет цвет фона в зависимости от некоторого значения данных, не так ли? Почему бы вам просто не отслеживать соответствующее свойство данных? – Sheridan
Ну, вот что - значение триггера, является динамическим (с (valueconverters)), основанным на другом sqltable – VisualBean
Но, конечно же, на каком-то этапе это зависит от новых данных, входящих ... вы просто сказали, что он основан на другом SQL Таблица. Можете ли вы не перебирать входящие данные, чтобы найти все триггеры «Триггера» и действовать на этом этапе? – Sheridan