【发布时间】:2023-04-05 17:20:01
【问题描述】:
在我的 WPF 控件中,我有以下两个触发器:
<Trigger
Property="Controls:TreeViewExItem.IsMouseOver"
Value="True"
SourceName="ElementGrid">
和
<DataTrigger
Binding="{Binding
RelativeSource={RelativeSource AncestorType={x:Type Controls:TreeViewEx}},
Path=HoverHighlighting}"
Value="False">
两者都可以正常工作。但我需要这些的组合。我试过这个:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition
Binding="{Binding
RelativeSource={RelativeSource AncestorType={x:Type Controls:TreeViewEx}},
Path=HoverHighlighting}"
Value="True"/>
<Condition
Binding="{Binding
(Controls:TreeViewExItem.IsMouseOver),
Source=ElementGrid}"
Value="True"/>
</MultiDataTrigger.Conditions>
但它什么也没做。我在输出窗口中收到此消息:
System.Windows.Data 错误:17:无法获取“IsMouseOver”值(类型 '布尔')来自''(类型'字符串')。绑定表达式:路径=(0); DataItem='String' (HashCode=1047858601);目标元素是 'TreeViewExItem'(名称='');目标属性是“NoTarget”(类型 '对象') InvalidCastException:'System.InvalidCastException: Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.DependencyObject" umgewandelt werden。
这并没有告诉我任何事情。它将如何运作?
更新:完整的项目代码现在可以在我的 GitHub 存储库中获得以供审查。我对 MultiDataTrigger 的猜测目前位于 at。
【问题讨论】:
-
相关问题here.
-
相关,但没有帮助,因为它不使用任何 SourceName 属性。
标签: wpf xaml triggers multidatatrigger