Heim > Backend-Entwicklung > C++ > Wie binde ich WPF ListBox SelectionChanged-Ereignisse an ViewModel-Befehle?

Wie binde ich WPF ListBox SelectionChanged-Ereignisse an ViewModel-Befehle?

Linda Hamilton
Freigeben: 2025-01-12 22:21:44
Original
164 Leute haben es durchsucht

How to Bind WPF ListBox SelectionChanged Events to ViewModel Commands?

UI-Ereignisse an Befehle in WPF ViewModel binden

Nach der MVVM-Architektur ist das Verschieben von UI-Ereignissen nach ViewModel der Codewartung und -erweiterung förderlicher. Dieser Artikel konzentriert sich auf die Übertragung des SelectionChanged-Ereignisses der ListBox aus der Code-Behind-Datei auf das ViewModel und verwendet den bereitgestellten Codeausschnitt als Beispiel.

Lösung

Dazu müssen wir EventTrigger zusammen mit InvokeCommandAction (im System.Windows.Interactivity-Namespace) verwenden:

<code class="language-xml"><ListBox ...>
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
      <i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}" />
    </i:EventTrigger>
  </i:Interaction.Triggers>
</ListBox></code>
Nach dem Login kopieren

Referenz System.Windows.Interactivity

  • Fügen Sie über Referenz hinzufügen > Erweiterungen einen Verweis auf die Assembly hinzu.
  • Vollständigen Namespace verwenden: xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity".

Zusätzliche Hinweise

    Die Eigenschaft
  • Command ist an den im ViewModel definierten Befehl gebunden.
  • Dieses Muster vereinfacht die Behandlung von UI-Ereignissen und verbessert die Trennung von Bedenken.
  • Achten Sie darauf, wie angegeben auf den System.Windows.Interactivity-Namespace zu verweisen, um eine erfolgreiche Implementierung sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie binde ich WPF ListBox SelectionChanged-Ereignisse an ViewModel-Befehle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage