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?

619   1  

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

    Ничего не найдено.