这个ItemsContainerStyle如何了解ItemsControl.AlternationIndex

时间:2015-12-19 16:10:07

标签: c# wpf datagrid

我一直在阅读WPF Unleashed,有些东西让我对样式感到困惑。

<Style TargetType="{x:Type Control}" x:Key="altStyle">
        <Setter Property="Background" Value="Green"></Setter>
        <Setter Property="Foreground" Value="White" ></Setter>
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Background" Value="White"></Setter>
                <Setter Property="Foreground" Value="Black" ></Setter>
            </Trigger>
        </Style.Triggers>
    </Style>

所以我在这里有一个样式,可以应用于任何源自控制的东西。假设TargetType的工作方式。对我来说,令人困惑的部分是它如何理解ItemsControl.AlternationIndex是什么。我正在为控件定义一个样式,它在继承链上比ItemsControl更高。它似乎违反了继承规则。

然后我有一个简单的数据网格,它使用这个样式作为ItemsContainerStyle:

<local:MyGrid AlternationCount="2" ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext.Source}" Grid.Row="3" ItemContainerStyle="{StaticResource altStyle}"></local:MyGrid> 

(MyGrid派生自DataGrid)

我在这里假设样式应用于网格中的每个DataRow,但是如何能够解析这个ItemsControl.AlternationIndex,因为这当然不适用于DataRow呢?并且只是为了清楚它的外观:

enter image description here

所以问题是。应用于数据网格行的样式如何管理以解析名为ItemsControl.AlternationIndex

的属性

0 个答案:

没有答案