você pode usar eventos roteados com um MultiTrigger?
-
05-07-2019 - |
Pergunta
Suporte Does WPF usando um gatilhos que respondem a eventos roteados mas apenas dado uma condição for atendida?
Por exemplo, WPF suporta provocando em eventos roteados através de disparadores do evento. ou seja:
<Button>
<Button.Triggers>
<EventTrigger RoutedEvent="Click">
...
</..
</..
</..
No entanto, estou procurando o gatilho para disparar dado somente uma determinada condição é satisfeita. Normalmente você usa MultiTriggers para atender várias condições. ou seja:
<Button>
<Button.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="..." Value="..."/>
<Condition Binding="..." Value="..."/>
</..
</..
</..
</..
No entanto, nem o MultiTrigger ou MultiDataTrigger parecem apoiar provocando sobre eventos roteados. Será que é mesmo possível misturar estes dois conceitos de eventos e condições roteados em XAML?
Solução
Eu não acho que é. Não do jeito que você está pensando sobre isso, de qualquer maneira.
O MultiTrigger
e MultiDataTrigger
são acionados quando várias propriedades têm os valores correspondentes ao mesmo tempo . Isso é algo que pode facilmente acontecer, porque ele é baseado em estado. É baseado em valores que permanecem as mesmas, pelo menos por um tempo.
Events, por outro lado, acontecer e se foram. Como você pode reagir dois eventos múltiplos, quando não ocorrem no mesmo momento?
Você teria que usar seus EventTrigger
s - talvez em conjunto a entrar / pares set-licença - para definir o estado de certas propriedades (anexado propriedades de som boas aqui), e, em seguida, criar um MultiTrigger
que olhou para essas propriedades.