[英]Change DataGrid row color by value in DataGrid column using converter
我創建了 DataGrid 並用數據庫中的值填充它。
現在我需要像這樣的數據網格的顏色行:
認為最好是使用轉換器。
已經創建的轉換器類:
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>
請幫助通過幾個單元格狀態確定數據網格行的顏色。
您只需使用多數據觸發器即可完成此操作
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<MultiDataTrigger >
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=NANO_STATUS}" Value="True" />
<Condition Binding="{Binding Path=PLC_STATUS}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Red" />
</MultiDataTrigger>
</Style.Triggers>
<Setter Property="Background" Value="Green" />
</Style>
</DataGrid.RowStyle>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.