WPF - Как мне оформить строку на основе значения свойства привязки? - PullRequest
0 голосов
/ 07 июня 2010

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

Вот событие 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));
        }
    }

Ответы [ 2 ]

1 голос
/ 07 июня 2010

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

ознакомьтесь с примером проекта цветных рядов на этом сайте

0 голосов
/ 07 июня 2010

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

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