DataGrid行的背景颜色MVVM

17 浏览
0 Comments

DataGrid行的背景颜色MVVM

我正在使用MVVM架构,我想改变数据网格中的行颜色。

行的颜色取决于模型中的项目。

到目前为止,我有以下代码:

private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e) {
        Log4NetLog dataGridRow = e.Row.DataContext as Log4NetLog;
        if (highlight) {
            if (dataGridRow != null) {
                e.Row.Background = new SolidColorBrush(
                    dataGridRow.LogColour.Colour);
            }
        } else {
            e.Row.Background = new SolidColorBrush(Colors.White);
        }
}

如您所见,在第二行中,我必须引用模型中的Log4NetLog

那么,如何更改代码以适应MVVM模式?

0
0 Comments

问题出现的原因是DataGrid的行的背景颜色无法通过MVVM绑定实现。解决方法是在XAML中设置DataGrid的ItemContainerStyle,然后通过绑定到LogColour.Colour属性来设置行的背景颜色。可能还需要使用一个颜色转换器来将Color转换为SolidColorBrush。

0