trigger data wpf xaml data-binding triggers

data - wpf button triggers



Combine Data Trigger y Trigger en un MultiDataTrigger (2)

He visto en algunos ejemplos que es posible combinar este tipo de disparador:

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

Con este tipo de disparador de datos:

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

Al utilizar 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 hacer que el activador funcione correctamente dentro del MultiDataTrigger? La propiedad IsMouseDirectlyOverItem se tomó de aquí http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx .

Gracias


La syntax de las propiedades adjuntas es diferente:

Path=(UI:TreeViewHelper.IsMouseDirectlyOverItem)


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