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 値に応じて Datagrid Fills 時の lblName の色を変更したい

4

3 に答える 3

0

これDataContextはどこでも同じです:現在の行全体。

にを簡単に追加しStyleて、Labelを使用できDataTriggerますIsActive(優先順位SetterStyleためにに移動する必要があるデフォルトの色を使用する場合)

于 2012-08-22T11:35:24.527 に答える
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 に答える
0

戻り値の型が Color の Converter (Active 変数のデータ型を Color にする) を作成し、それを Label にアタッチすることができます。アクティブな値に基づいて、コンバーターは目的の色を返します。

于 2012-08-22T14:16:20.057 に答える