È possibile utilizzare eventi indirizzati con un MultiTrigger?
-
05-07-2019 - |
Domanda
Il WPF supporta l'utilizzo di trigger che rispondono a eventi indirizzati ma solo se viene soddisfatta una condizione?
Ad esempio, WPF supporta l'attivazione di eventi indirizzati tramite Trigger eventi. vale a dire:
<Button>
<Button.Triggers>
<EventTrigger RoutedEvent="Click">
...
</..
</..
</..
Tuttavia sto cercando che il grilletto si attivi solo se viene soddisfatta una certa condizione. Normalmente si utilizzano MultiTrigger per soddisfare più condizioni. vale a dire:
<Button>
<Button.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="..." Value="..."/>
<Condition Binding="..." Value="..."/>
</..
</..
</..
</..
Tuttavia, né il MultiTrigger né il MultiDataTrigger sembrano supportare l'attivazione di eventi indirizzati. È anche possibile mescolare questi due concetti di eventi e condizioni indirizzati in XAML?
Soluzione
Non credo. Non nel modo in cui ci stai pensando, comunque.
MultiTrigger
e MultiDataTrigger
vengono attivati ??quando più proprietà hanno i valori corrispondenti contemporaneamente . Questo è qualcosa che può facilmente accadere perché si basa sullo stato. Si basa su valori che rimangono gli stessi, almeno per un po '.
Gli eventi invece accadono e poi se ne vanno. Come hai potuto reagire a due eventi multipli, quando non si verificano nello stesso momento?
Dovresti usare i tuoi EventTrigger
- forse in coppie set-enter / set-leave - per impostare lo stato di alcune proprietà (le proprietà associate suonano bene qui), e quindi creare un MultiTrigger
che ha esaminato quelle proprietà.