我在样式触发器中有一个数据触发器,如下所示
<Style TargetType="DataGridCell" x:Key="ChangeAnimation" >
<Style.Triggers>
<DataTrigger Binding="{Binding Path=APropertyOfTheDataGridCellContext Bind DataContext}" Value="True" >
...
</DataTrigger>
</Style.Triggers>
</Style>
我将使用属性CellStyle将此样式应用于某些DataGridColumns . 我想要的是将样式的DataTrigger绑定到单元格的datacontext的属性,这样我就可以在所有必需的列上使用此样式,而不必为每列创建新样式 . 这可能吗?
提前致谢 .
编辑:为了澄清,DataGrid的DataContext是一个ViewModel,它具有一个名为Rows的属性,Rows有一个名为Cells的属性,其属性叫做Blink . 我想在样式中引用属性,如下所示:
<DataGrid.Resources>
<Style TargetType="DataGridCell" x:Key="ChangeAnimation" >
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Blink}" Value="True" >
...
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
这给了我一个错误,因为DataGridResources的datacontext是包含Rows而不是单元格的那个 . 如何从样式引用DataGridCell DataContext?
1 回答
删除
x:Key
属性然后将应用于所有列 .如果您有2个DataGrids,那么您应该将此样式保存在要修改的dataGrid的
Resources
标记中...如果RelativeSource不工作,我宁愿通过触发器更改列的模板以实现类似的行为
为列写入触发器
这里
MyProperty
是DataGridRow
的DataContext
的属性,因此您可以选择任何级别的嵌套属性yo比较该特定行...唯一的缺点是您必须对需要此项的所有列执行此操作我希望它有所帮助