2012-08-16 56 views
0

我正在使用DataGrid並嘗試更改每隔一行的默認背景色(奇數行具有黃色,偶數行具有白色),因爲顏色與高亮顏色太相似。如何將datagrid的背景更改爲每隔一行的相同顏色?

這裏是我的代碼:

MyDataGrid.LoadingRow += delegate(object sender, DataGridRowEventArgs e) 
{ 
    var currentRowContext = e.Row.DataContext;  
    if (currentRowContext.GetType() 
         .GetProperty("OBJECTID") 
         .GetValue(currentRowContext, null) 
         .ToString()]) % 2 == 0) 
     { 
      e.Row.Background = new SolidColorBrush(Colors.White); 
     } 
     else 
     { 
      e.Row.Background = new SolidColorBrush(
             new Color() { 
                R = 235, 
                G = 235, 
                B = 0, 
                A = 60 
                }); 
}; 
MyDataGrid.UnloadingRow += delegate(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.Background = null; 
}; 

它正確地顯示了在第一,但我點擊任何標題後對記錄進行排序,顏色搞砸了(即不是每隔一行具有相同的顏色) 。我發現設置這個DataGrid行的顏色真的是絕招,不知道是否有人已經解決了這個問題。 如何在排序記錄時保持交替的顏色?

回答

2

this你想達到什麼目的? (意味着每隔一行獲得自己的顏色)。在大多數相關的wpf控件中都有一個實現的交替代碼。

+0

謝謝,但我不認爲這就是我的意思。我想要的是奇數行總是具有相同的顏色(例如,白色),並且偶數行號具有相同的顏色(例如,黃色),沒有任何字段按任何字段排序。順便說一句,你是什麼意思在WPF控制實施的代碼? – lwconquer 2012-08-16 18:08:01

+0

那麼,這正是替代做的。 :) – 2012-08-16 18:26:04

+0

媽的:)。這真是一個我不知道的很好的解決方案。這爲我節省了很多時間。德米特里,非常感謝你的幫助。 – lwconquer 2012-08-16 18:58:42

相關問題