0

色がハイライト色に似すぎているため、他のすべての行のデフォルトの背景色を使用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行の色を設定するのは本当に難しいと思います。誰かがこの問題を解決したかどうかはわかりません。 レコードを並べ替えるときに、交互の色を維持するにはどうすればよいですか?

4

1 に答える 1

2

これはあなたが達成しようとしていることですか?(つまり、2 行ごとに独自の色が取得されます)。ほとんどの関連する wpf コントロールに実装された代替コードがあります。

于 2012-08-16T16:35:54.367 に答える