2008-10-06 26 views
2

Est-ce que WPF prend en charge l'utilisation de déclencheurs qui répondent aux événements routés, mais uniquement si une condition est remplie? Par exemple, WPF prend en charge le déclenchement sur les événements routés via les déclencheurs d'événements. -à-dire:Pouvez-vous utiliser des événements routés avec un MultiTrigger?

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

Cependant, je suis à la recherche de la gâchette se déclenche seulement donné une certaine condition est remplie. Normalement, vous utilisez MultiTriggers pour répondre à plusieurs conditions. à savoir:

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

Cependant ni le MultiTrigger ou MultiDataTrigger semblent soutenir le déclenchement des événements routés. Est-il même possible de mélanger ces deux concepts d'événements et de conditions routés dans XAML?

Répondre

2

Je ne pense pas que ce soit. Pas la façon dont tu y penses, de toute façon.

Le MultiTrigger et MultiDataTrigger sont déclenchés lorsque plusieurs propriétés ont les valeurs correspondant en même temps. C'est quelque chose qui peut facilement arriver parce qu'il est basé sur l'état. C'est basé sur des valeurs qui restent les mêmes, au moins pendant un moment.

Les événements d'autre part, se produisent et sont partis. Comment pourriez-vous réagir à deux événements multiples, lorsqu'ils ne se produisent pas au même moment? Vous devrez utiliser votre EventTrigger s - peut-être dans les paires set-enter/set-leave - pour définir l'état de certaines propriétés (les propriétés attachées sonnent bien ici), puis créer un MultiTrigger qui a regardé ces Propriétés.

+0

Je suis d'accord, et j'ajouterais que la plupart des événements routés qui indiquent un changement d'état ont des propriétés qui leur correspondent et peuvent être utilisés dans un MultiTrigger. –