<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label x:Name="lblName" Content="{Binding Name}" Foreground="White" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding Path=IsActice}" Header="Is Actice" />
</DataGrid.Columns>
</DataGrid>
我想根据IsActive值更改Datagrid填充时lblName的颜色
答案 0 :(得分:0)
DataContext
在任何地方都是一样的:整个当前行。
您可以轻松地向Style
添加Label
,并在IsActive
上使用DataTrigger
。 (如果由于precedence而需要将Setter
中的Style
移至默认颜色
答案 1 :(得分:0)
您可以使用返回类型Color创建转换器(Active变量的数据类型为Color)并将其附加到Label。根据有效值,转换器将返回所需的颜色。
答案 2 :(得分:0)
我使用以下代码解析了
<Style TargetType="{x:Type Label}" x:Key="DataGridLabel">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsActive}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Label.Background" Value="Red"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsActive}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Label.Background" Value="Green"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>