在我的WPF控件,我有以下两个触发器:如何将触发器与SourceName和DataTrigger结合使用?
<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 Error: 17 : Cannot get 'IsMouseOver' value (type 'Boolean') from '' (type 'String'). BindingExpression:Path=(0); DataItem='String' (HashCode=1047858601); target element is 'TreeViewExItem' (Name=''); target property is 'NoTarget' (type 'Object') InvalidCastException:'System.InvalidCastException: Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.DependencyObject" umgewandelt werden.
这并没有告诉我任何东西。它将如何工作?
更新:完整的项目代码现在可在我的GitHub存储库中查看。我对MultiDataTrigger的猜测当前位于at。
相关问题[这里](http://stackoverflow.com/q/602517/620360)。 – LPL 2012-07-27 11:31:50
相关,但没有帮助,因为它不使用任何SourceName属性。 – ygoe 2012-07-27 15:09:29