Я пытаюсь изменить код за цветом строки DataGrid
, когда возникает условие в этой строке. Что-то вроде:Изменить цвет фона «DataGrid» в коде за
private void Datagrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if((((System.Data.DataRowView)(e.Row.DataContext)).Row.ItemArray[3].ToString()) == "ERROR")
e.Row.Background = new SolidColorBrush(Colors.Red);
else
e.Row.Background = null;
}
Это очень просто, но это не работает:
я получаю
InvalidCastException
наif
линии.Даже если я ставлю одну строку с:
e.Row.Background = new SolidColorBrush(Colors.Red);
... это не работает, и ни одна из линий не покраснеет.
--- ADD ---
1 Для первой задачи ошибка исходит из следующих отливать
(System.Data.DataRowView)(e.Row.DataContext))
где е происходит от
private void Datagrid_LoadingRow(object sender, DataGridRowEventArgs e)
так событие правильно вызывается, но я не могу заставить элемент строки/столбца программно изменять фон или передний план.
- Я не могу изменить фон, но я могу изменить передний план. Если вы посмотрите на следующее изображение, вы увидите, что эти строки имеют разные цвета. Я ничего не поставил на purpouse, и в определении datagrid в xaml нет ничего особенного. Но именно по этой причине я не могу установить фон. Как я могу отменить это условие?
XAML -
<DataGrid x:Name="dtgEventsPCDmis" Grid.Row="6" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" VerticalContentAlignment="Stretch" BorderThickness="5" Margin="10,21.4,9.6,0" LoadingRow="Datagrid_LoadingRow" AutoGeneratingColumn="Datagrid_AutoGeneratingColumn" VerticalAlignment="Top" Height="139" RenderTransformOrigin="0.5,0.5" GridLinesVisibility="All"/>
см. Мой добавочный – Patrick