【问题标题】:How to set background color of a cell depending on a DataGrid alternation index?如何根据 DataGrid 交替索引设置单元格的背景颜色?
【发布时间】:2014-05-21 09:23:34
【问题描述】:

我想根据 DataGrid 的交替索引更改单元格的背景颜色。我的模板如下所示:

<DataTemplate x:Key="MyTemplate">
  <Label x:Name="MyLabel">foobar</Label>
  <DataTemplate.Triggers>
    <Trigger Property="DataGridRow.AlternationIndex" Value="0">
      <Setter Property="Background" Value="Blue" TargetName="MyLabel"/>
    </Trigger>
    <Trigger Property="DataGridRow.AlternationIndex" Value="1">
      <Setter Property="Background" Value="Red" TargetName="MyLabel"/>
    </Trigger>
  </DataTemplate.Triggers>
</DataTemplate>

而我的DataGrid 已设置属性:

   <DataGrid AlternationCount="2"> ... </DataGrid>

蓝色背景有效,但所有单元格都有蓝色背景,没有单元格有红色背景。这里缺少什么?

【问题讨论】:

  • 这是一个单元格模板吗?

标签: c# wpf datagrid triggers


【解决方案1】:

您必须使用 DataTrigger 而不是触发器

<DataTemplate x:Key="MyTemplate">
  <Label x:Name="MyLabel">foobar</Label>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(ItemsControl.AlternationIndex)}" Value="0">
      <Setter Property="Background" Value="Blue" TargetName="MyLabel"/>
    </DataTrigger >
     <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(ItemsControl.AlternationIndex)}" Value="1">
      <Setter Property="Background" Value="Red" TargetName="MyLabel"/>
    </DataTrigger >
  </DataTemplate.Triggers>
</DataTemplate>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2014-03-12
    • 2022-10-24
    • 2020-06-02
    相关资源
    最近更新 更多