0
<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>

我想在 Datagrid 根据 IsActive 值填充时更改 lblName 的颜色

4

3 回答 3

0

到处都是一样的DataContext:整个当前行。

您可以轻松地将 a 添加Style到 theLabel并使用 a DataTriggeron IsActive。(如果您打算有一个默认颜色,由于优先级需要移动到 aSetter中)Style

于 2012-08-22T11:35:24.527 回答
0

您可以创建一个返回类型为 Color 的转换器(Active 变量的数据类型为 Color)并将其附加到 Label。根据 Active 值,转换器将返回所需的颜色。

于 2012-08-22T14:16:20.057 回答
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>
于 2012-08-28T04:22:47.713 回答