Frage

Ist WPF Unterstützung einen Trigger verwenden, die auf gerouteten Ereignisse reagieren, sondern nur dann gegeben eine Bedingung erfüllt ist?

Zum Beispiel unterstützt WPF auf gerouteten Ereignisse durch Ereignisauslöser ausgelöst wird. dh:

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

Doch ich bin auf der Suche für den Auslöser nur eine bestimmte Bedingung gegeben gehen erfüllt ist. Normalerweise verwenden Sie MultiTriggers für mehrere Bedingungen erfüllen. dh:

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

Doch weder die Multitrigger oder Multidatatrigger scheinen Triggern auf gerouteten Ereignisse zu unterstützen. Ist es auch möglich, diese beiden Konzepte von geroutet Ereignisse und Bedingungen in XAML zu mischen?

War es hilfreich?

Lösung

Ich glaube nicht, es ist. Nicht so, wie man darüber denkt, sowieso.

Die MultiTrigger und MultiDataTrigger ausgelöst werden, wenn mehrere Eigenschaften die passenden Werte zur gleichen Zeit . Dies ist etwas, das leicht passieren kann, weil es auf Zustand basiert. Es basiert auf Werten, die die gleichen sind, zumindest für eine Weile zu bleiben.

Veranstaltungen auf der anderen Seite, passieren und dann verschwunden sind. Wie können Sie reagieren zwei mehrere Ereignisse, wenn sie nicht im selben Moment auftreten?

Sie müßten Ihre EventTriggers verwenden - vielleicht in Set-Eingabe / Set-leave-Paare - den Zustand bestimmter Eigenschaften einzustellen (angefügten Eigenschaften gut klingen hier), und erstellen Sie dann ein MultiTrigger, die an diesen Eigenschaften angesehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top