【发布时间】:2012-01-25 15:39:11
【问题描述】:
我有一个具有这些属性的对象:
IsLightOnVal 是一个包含 2 个字段的集合:状态名称的字符串和值的 Bool,正如我们在第二张图片中看到的:
在我的对象的 ControlTemplate 中,我想创建一个触发器:当我的集合中的第一个对象的值为真时,然后执行此操作....
我可以从我的属性 IsLightOnVal1 和第一张图片的 IsLightOnVal1 轻松访问,但我无法访问我的收藏。
所以这工作正常:
<Trigger Property="IsLightOnVal1" Value="True">
<Setter Property="Foreground" TargetName="tkValue1" Value="{StaticResource Amber}"/>
</Trigger>
但是当我尝试使用该集合进行某些操作时,我永远无法访问,我尝试了:
<Trigger Property="{Binding IsLightOnVal[0].Value, RelativeSource={RelativeSource AncestorType=NameSpace:MyObject}}" Value="True">
<Setter Property="Foreground" TargetName="tkValue1" Value="{StaticResource Amber}"/>
</Trigger>
但是触发器的属性似乎不接受绑定...
有人有解决办法吗?
【问题讨论】:
-
括号语法应该是有效的,你确定你的RelativeSource路径是有效的吗?输出窗口中是否有绑定错误?
-
错误是:无效的 XAML。就是这样...我尝试了DataTrigger,没有错误但似乎不起作用。
标签: wpf data-binding binding triggers blend