私のWPFコントロールには、次の2つのトリガーがあります。
<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:''(タイプ'String')から'IsMouseOver'値(タイプ'ブール値')を取得できません。BindingExpression:Path =(0); DataItem ='String'(HashCode = 1047858601); ターゲット要素は'TreeViewExItem'(Name ='');です。ターゲットプロパティは'NoTarget'(タイプ'Object')です。InvalidCastException:'System.InvalidCastException:Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.DependencyObject"umgewandeltwerden。
それは私に何も教えてくれません。それはどのように機能しますか?
更新:完全なプロジェクトコードがGitHubリポジトリで確認できるようになりました。MultiDataTriggerの私の当て推量は、現在にあります。