2010-06-06 125 views
0

所以我試圖綁定一個對象集合(IList <>)到一個WPF數據網格。如果「藝術家」屬性爲空或空白,我想使行背景爲不同的顏色。我正在檢查存儲在LoadingRow datagrid事件上屬性的值。目前我的實現似乎正確地使用空或'藝術家'屬性來設置所有行的樣式。問題在於,在某些情況下,樣式也是屬性不爲空或空的行的樣式。因此即使行'artist'屬性不爲空,某些行也會被賦予紅色背景。誰能告訴我爲什麼這可能是?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

相關問題