2010-06-06 2 views
0

Так что я пытаюсь связать коллекцию объектов (IList <>) с WPat datagrid. Я хотел бы сделать цвет фона другого цвета, если свойство «artist» равно null или пустое. Я проверяю значение, хранящееся в этом свойстве, в событии Datagrid LoadRow. В настоящее время моя реализация, похоже, правильная настройка всех строк с пустым или нулевым свойством «artist». Проблема в том, что также стили строки, в которых свойство не является нулевым или пустым в некоторых случаях. Таким образом, некоторым строкам присваивается красный фон, даже если свойство artist '' не равно null. Может ли кто-нибудь сказать мне, почему это может быть?WPF - Как создать строку на основе значения свойства привязки?

Вот событие LoadingRow:

private void trackGrid_LoadingRow(object sender, DataGridRowEventArgs e) 
    { 
     Track t = e.Row.DataContext as Track; 

     if (String.IsNullOrEmpty(t.Artist)) 
     { 
      e.Row.Background = 
       new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 255, 125, 125)); 
     } 
    } 

ответ

0

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

else 
{ 
    e.Row.Background = DependencyProperty.UnsetValue; 
} 
1

я использовать модель представления в подобных ситуациях, что позволяет связывание непосредственно к цвет строки.

Оформить заявку на образец цветных рядов на этом site

Смежные вопросы