Можно ли использовать перенаправленные события с MultiTrigger?
-
05-07-2019 - |
Вопрос
Поддерживает ли WPF использование триггеров, которые отвечают на перенаправленные события, но только при условии соблюдения условия?
Например, WPF поддерживает запуск по перенаправленным событиям через триггеры событий. то есть:
<Button>
<Button.Triggers>
<EventTrigger RoutedEvent="Click">
...
</..
</..
</..
Однако я ищу, чтобы сработал триггер только при соблюдении определенных условий. Обычно вы используете MultiTriggers для выполнения нескольких условий. то есть:
<Button>
<Button.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="..." Value="..."/>
<Condition Binding="..." Value="..."/>
</..
</..
</..
</..
Однако ни MultiTrigger, ни MultiDataTrigger не поддерживают запуск по перенаправленным событиям. Можно ли даже смешать эти две концепции перенаправленных событий и условий в XAML?
Решение
Я не думаю, что это так. Во всяком случае, не так, как ты думаешь.
MultiTrigger
и MultiDataTrigger
запускаются, когда несколько свойств имеют совпадающие значения одновременно . Это то, что может легко произойти, потому что оно основано на состоянии. Он основан на значениях, которые остаются неизменными, по крайней мере, некоторое время.
С другой стороны, события случаются, а потом исчезают. Как вы могли бы реагировать на два множественных события, когда они не происходят одновременно?
Вы должны будете использовать ваши EventTrigger
- возможно, в парах set-enter / set-left - чтобы установить состояние определенных свойств (здесь прикрепленные свойства звучат хорошо), а затем создать MultiTrigger
, который просматривал эти свойства.