3
样式化DataGrid,我想通过将触发器应用于ControlTemplate或Style来区分它的最后一个列标题。例如:如何检查DataGridColumnHeader的ColumnIndex是否是触发器的最后一个?
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid>
<Border>
<ContentPresenter
DataContext="{TemplateBinding DataContext}"
Content="{Binding}"
VerticalAlignment="Center"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="DisplayIndex" Value="{Binding ???}">
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是,我必须绑定什么值?有TemplateBinding,TemplatedParent和许多其他绑定,但即使我知道使用哪一个,然后再次寻找它的内部属性? (很明显有一些具有计数或长度属性的集合,但它将很好地看到确切的东西)
由于在运行时解析所有不同的绑定,所以必须有方法来确定究竟是什么类型我要去绑定,对吧?我怎么找到它?
你可能需要一个多转换器,在其中您将项目(列)的集合与此列的datacontext一起传递,然后您可以检查索引并返回true或false 。最后,让你的触发器检查其中的一个值。 – gregsdennis 2015-02-10 01:50:43