Подтвердить что ты не робот

Объединить DataTrigger и Trigger в MultiDataTrigger

Я видел из некоторых примеров, что можно комбинировать этот тип триггера:

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

С этим типом данных:

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

Используя MultiDataTrigger, выполните следующие действия:

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

Однако это не работает с прикрепленными свойствами. Этот триггер работает:

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

Но это не работает:

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

Есть ли способ заставить триггер правильно работать внутри MultiDataTrigger? Свойство IsMouseDirectlyOverItem было взято здесь http://blogs.msdn.com/b/mikehillberg/archive/2006/09/21/mytreeviewhelperismousedirectlyoveritem.aspx.

Спасибо

4b9b3361

Ответ 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>