在我的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