Я создал DataGrid и заполнил его значениями из базы данных.
Теперь мне нужны такие цветные строки сетки данных:
- Строка зеленая, если флажок строки проверен, а столбец Значение NANO_status равно 1 и PLC_status true.
- Строка имеет желтый цвет, если флажок CheckBox строки установлен, а значение столбца NANO_status равно 0
- Строка имеет значение красный, если флажок CheckBox строки проверен и (значение NANO_status столбца 2 ИЛИ столбец значение NANO_status 1 и PLC_status false ИЛИ столбец ИЛИ значение NANO_status 0 и PLC_status true).
- Строка является стандартным цветом, если флажок строки не отмечен или проверен и (NANO_status или PLC_STATUS) пуст.
считает, что лучше всего использовать конвертеры.
уже созданный класс конвертеров:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var isOnline = (bool)value;
if (isOnline)
{
return Brushes.Green;
}
else
return Brushes.Red;
}
не может понять, как свойство связывает его, чтобы получить требуемый результат. Вот как я пытался:
<Window.Resources>
<converters:StateToBrushConverter x:Key="StateToBrush"/>
</Window.Resources>
<Border Padding="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Filter" Margin="5"/>
<TextBox Text="{Binding FilterText,UpdateSourceTrigger=PropertyChanged}" Width="200" Margin="5"/>
</StackPanel>
<DataGrid Grid.Row="1" AutoGenerateColumns="false" ItemsSource="{Binding Items}" >
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow }">
<Setter Property="Background" Value="{Binding ACTIVE, Converter={StaticResource StateToBrush}}"></Setter>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridCheckBoxColumn x:Name="DGC" Header="ACTIVE" Binding="{Binding ACTIVE}"/>
<DataGridTextColumn Header="DEVICE" Binding="{Binding DEVICE}"/>
<DataGridTextColumn Header="NANO IP" Binding="{Binding NANO_IP}"/>
<DataGridTextColumn Header="PLC IP" Binding="{Binding PLC_IP}"/>
<DataGridTextColumn Header="NANO STATUS" Binding="{Binding NANO_STATUS}"/>
<DataGridTextColumn Header="PLC STATUS" Binding="{Binding PLC_STATUS}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
, пожалуйста, помогите выяснить, как цвет ряда данных сетки по нескольким состояниям ячеек.