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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top