Pregunta

¿Admite WPF el uso de desencadenantes que responden a eventos enrutados pero solo se cumple una condición?

Por ejemplo, WPF admite la activación de eventos enrutados a través de los activadores de eventos. es decir:

<Button>
  <Button.Triggers>
    <EventTrigger RoutedEvent="Click">
      ...
    </..
  </..
</..

Sin embargo, estoy buscando que el disparador se dispare solo si se cumple una determinada condición. Normalmente usas MultiTriggers para cumplir múltiples condiciones. es decir:

<Button>
  <Button.Triggers>
    <MultiDataTrigger>
      <MultiDataTrigger.Conditions>
         <Condition Binding="..." Value="..."/>
         <Condition Binding="..." Value="..."/>
      </..
    </..
  </..
</..

Sin embargo, ni el MultiTrigger ni el MultiDataTrigger parecen admitir la activación de eventos enrutados. ¿Es incluso posible combinar estos dos conceptos de eventos enrutados y condiciones en XAML?

¿Fue útil?

Solución

No creo que lo sea. No es la forma en que lo piensas, de todos modos.

El MultiTrigger y MultiDataTrigger se activan cuando varias propiedades tienen los valores correspondientes al mismo tiempo . Esto es algo que puede suceder fácilmente porque se basa en el estado. Se basa en valores que permanecen iguales, al menos por un tiempo.

Por otro lado, los eventos suceden y luego desaparecen. ¿Cómo podría reaccionar dos eventos múltiples, cuando no ocurren en el mismo momento?

Tendría que usar su EventTrigger s, tal vez en los pares set-enter / set-leave, para establecer el estado de ciertas propiedades (las propiedades adjuntas suenan bien aquí), y luego crear un MultiTrigger que analizó esas propiedades.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top