2012-08-22 56 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

您可以創建一個轉換器(主動變量的數據類型爲顏色)返回類型爲顏色,並將其附加標籤。基於有效值,轉換器將返回所需的顏色。