【问题标题】:WPF DataGrid columns alternating coloringWPF DataGrid 列交替着色
【发布时间】:2010-10-24 16:02:18
【问题描述】:

如果我还想使用 AlternatingRowBackground 属性,如何在 DataGrid 中为列着色? 我有一些想法,但它不起作用:(。

<de:DataGrid Name="dataGrid1"
                             AlternationCount="2"
                             AlternatingRowBackground="Salmon"
                             >
                    <de:DataGrid.Columns>
                        <de:DataGridTextColumn Binding="{Binding Path=Phrase}"
                                               Header="Phrase">
                            <de:DataGridTextColumn.ElementStyle>
                                <Style TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                                            <Setter Property="Background" Value="Green"></Setter>
                                        </Trigger>
                                        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                            <Setter Property="Background" Value="Red"></Setter>
                                        </Trigger>

                                    </Style.Triggers>
                                </Style>
                            </de:DataGridTextColumn.ElementStyle>
                        </de:DataGridTextColumn>
                     </de:DataGrid.Columns>
                </de:DataGrid>

也许有人知道可行的解决方案?谢谢。

【问题讨论】:

    标签: wpf datagrid styles wpftoolkit


    【解决方案1】:

    您在错误的控件中搜索 AlternationIndex 属性。此属性属于 DataGridRow。

    <DataGrid ItemsSource="{Binding}" AlternationCount="2" AutoGenerateColumns="False" AlternatingRowBackground="Salmon">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding Path=Phrase}" Header="Phrase">
                        <DataGridTextColumn.ElementStyle>
                            <Style TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding AlternationIndex, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="0">
                                        <Setter Property="Background" Value="Green"></Setter>
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding AlternationIndex, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="1">
                                        <Setter Property="Background" Value="Red"></Setter>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </DataGridTextColumn.ElementStyle>
                    </DataGridTextColumn>
                </DataGrid.Columns>
              </DataGrid>
    

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 2012-06-10
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      相关资源
      最近更新 更多