2012-07-10 2 views
19

ich von einigen Beispielen gesehen habe, dass es möglich ist, diese Art von Trigger zu kombinieren:Datatrigger und Trigger-Kombinieren in einem Multidatatrigger

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

Mit dieser Art von Daten-Trigger:

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

von mit einem MultiDataTrigger wie folgt:

<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> 

Dies funktioniert jedoch nicht mit angehängten Eigenschaften. Dieser Trigger funktioniert:

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

Aber das funktioniert nicht:

<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> 

Gibt es eine Möglichkeit ich den Abzug Arbeit richtig in die Multidatatrigger machen könnte? Die IsMouseDirectlyOverItem-Eigenschaft wurde von hier http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx übernommen.

Dank

Antwort

7

Die syntax für angebracht Eigenschaften unterscheidet:

Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem) 
+0

ich nicht gewusst habe, vielen Dank! – 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>