2012-07-10 20 views
19

que he visto de algunos ejemplos de que es posible combinar este tipo de disparo:DataTrigger y el gatillo en una MultiDataTrigger

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

Con este tipo de activador de datos:

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

Por utilizando un MultiDataTrigger como este:

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

Sin embargo, esto no funciona con las propiedades adjuntas. Este disparador funciona:

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

Pero esto no funciona:

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

¿Hay alguna manera de que pudiera hacer que el gatillo correctamente dentro de la MultiDataTrigger? La propiedad IsMouseDirectlyOverItem se tomó desde aquí http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx.

Gracias

Respuesta

7

El syntax de propiedades adjuntas es diferente:

Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem) 
+0

no sabía que, gracias mucho! – 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>