如何将datagrid的背景更改为每隔一行的相同颜色?

时间:2012-08-16 16:28:11

标签: c# silverlight 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行颜色真的很棘手,不知道是否有人已经解决了这个问题。 如何在排序记录时保持交替颜色?

1 个答案:

答案 0 :(得分:2)

this你想要实现的目标是什么? (意思是每第二行都有自己的颜色)。在大多数相关的wpf控件中都有一个实现的交替代码。