DataGrid строка цвет фона MVVM
Я использую архитектуру MVVM и хочу изменить цвет строки в datagrid.
Цвет строки зависит от элемента из модели.
Пока у меня есть такой код:
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?
1 ответ:
Я предполагаю, что ваш DataGrids ItemsSource привязан к коллекции Log4NetLog, поэтому вы можете сделать стиль в xaml:
<DataGrid.ItemContainerStyle> <Style TargetType="{x:Type DataGridRow}"> <Setter Property="Background" Value="{Binding Path=LogColour.Colour}"/> </Style> </DataGrid.ItemContainerStyle>Возможно, вам нужен конвертер Color to SolidColorBrush.
Comments