2012-08-22 246 views
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> 

我想,当根据IsActive价值改变颜色

回答

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

DataContext,到处都是一样的Datagrid填充更改lblName的颜色:整个当前行。

您可以轻松地将Style添加到Label,并在IsActive上使用DataTrigger。 (如果您打算在有需要被移动到一个Setter默认颜色Style由于precedence

0

您可以创建一个转换器(主动变量的数据类型为颜色)返回类型为颜色,并将其附加标签。基于有效值,转换器将返回所需的颜色。