2012-07-10 19 views
19

Tôi đã nhìn thấy từ một số ví dụ mà chúng ta có thể kết hợp loại kích hoạt này:Kết hợp DataTrigger và kích hoạt trong một MultiDataTrigger

<Trigger Property="IsMouseOver" Value="True"> 

Với loại dữ liệu này kích hoạt:

<DataTrigger Binding="{Binding IsHighlightable}" Value="True" /> 

Bằng sử dụng MultiDataTrigger như thế này:

<MultiDataTrigger> 
    <MultiDataTrigger.Conditions> 
     <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/> 
     <Condition Binding="{Binding IsHighlightable}" Value="True" /> 
    </MultiDataTrigger.Conditions> 
    <MultiDataTrigger.Setters> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="BorderBrush" Value="#BF6DBDD1"/> 
     <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/> 
    </MultiDataTrigger.Setters> 
</MultiDataTrigger> 

Tuy nhiên, điều này không hoạt động với các thuộc tính đính kèm. Trigger này hoạt động:

<Trigger Property="UI:TreeViewHelper.IsMouseDirectlyOverItem" Value="True"> 

Nhưng điều này không làm việc:

<MultiDataTrigger> 
    <MultiDataTrigger.Conditions> 
     <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=UI:TreeViewHelper.IsMouseDirectlyOverItem}" Value="True"/> 
     <Condition Binding="{Binding IsHighlightable}" Value="True" /> 
    </MultiDataTrigger.Conditions> 
    <MultiDataTrigger.Setters> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="BorderBrush" Value="#BF6DBDD1"/> 
     <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/> 
    </MultiDataTrigger.Setters> 
</MultiDataTrigger> 

Có cách nào tôi có thể làm cho việc kích hoạt một cách chính xác bên trong MultiDataTrigger? Thuộc tính IsMouseDirectlyOverItem được lấy từ đây http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx.

Cảm ơn

Trả lời

7

Các syntax cho tài sản gắn liền là khác nhau:

Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem) 
+0

Tôi đã không biết rằng, thanks a lot! – Carl

2
<MultiDataTrigger> 
    <MultiDataTrigger.Conditions> 
     <Condition Binding="{Binding IsHighlightable}" Value="True"/> 
     <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/> 
    </MultiDataTrigger.Conditions> 
    <MultiDataTrigger.Setters> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="BorderBrush" Value="#BF6DBDD1"/> 
     <Setter Property="Background" Value="{StaticResource SelectedItemBackgroundBrush}"/> 
    </MultiDataTrigger.Setters> 
</MultiDataTrigger> 
Các vấn đề liên quan