Heim > Backend-Entwicklung > C++ > Wie binde ich WPF-UI-Ereignisse (wie SelectionChanged) an ViewModel-Befehle in MVVM?

Wie binde ich WPF-UI-Ereignisse (wie SelectionChanged) an ViewModel-Befehle in MVVM?

Barbara Streisand
Freigeben: 2025-01-12 22:36:44
Original
626 Leute haben es durchsucht

How to Bind WPF UI Events (like SelectionChanged) to ViewModel Commands in MVVM?

WPF-UI-Ereignisse (z. B. SelectionChanged) an ViewModel-Befehle in MVVM binden

Das MVVM-Muster befürwortet die Trennung der UI-Logik von der Datenschicht. Aus diesem Grund ist es wichtig, UI-Ereignisse im ViewModel zu verarbeiten. Im bereitgestellten Codebeispiel wird das SelectionChanged-Ereignis im CodeBehind behandelt. Lassen Sie uns untersuchen, wie Sie dieses Ereignis in das ViewModel verschieben.

UI-Ereignisse an Befehle binden

WPF bietet eine leistungsstarke Funktion namens Datenbindung. Es ermöglicht Ihnen, UI-Elemente an Eigenschaften oder Befehle im ViewModel zu binden. In diesem Beispiel binden wir das SelectionChanged-Ereignis der Kontakteliste an einen Befehl im ViewModel.

Verwenden Sie EventTriggers und InvokeCommandAction

Dazu können Sie EventTrigger und InvokeCommandAction aus dem Windows.Interactivity-Namespace verwenden. Ein Beispiel ist wie folgt:

<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

Referenzen 'i'-Namespace

Um EventTrigger und InvokeCommandAction zu verwenden, müssen Sie auf die System.Windows.Interactivity-Assembly verweisen. Öffnen Sie das Referenzfenster des Projekts und navigieren Sie zu Referenz hinzufügen > Befehl an ViewModel binden

Erstellen Sie im ViewModel einen öffentlichen Befehl zur Behandlung des Ereignisses:

Binden Sie den Befehl an den DataContext des Fensters:

<code class="language-csharp">public ICommand SelectedItemChangedCommand { get; }</code>
Nach dem Login kopieren

Verarbeitung des SelectedItemChanged-Ereignisses

<code class="language-csharp">this.DataContext = new MyAppViewModel();</code>
Nach dem Login kopieren

Implementieren Sie in MyAppViewModel den SelectedItemChangedCommand und führen Sie die erforderliche Logik aus, z. B. das Abrufen und Gruppieren von Tags, genau wie im ursprünglichen Ereignishandler. Durch das Befolgen dieser Schritte haben Sie die SelectionChanged-Ereignisbehandlung erfolgreich in das ViewModel verschoben und somit den MVVM-Prinzipien gefolgt und die UI-Logik von der Datenschicht getrennt.

Das obige ist der detaillierte Inhalt vonWie binde ich WPF-UI-Ereignisse (wie SelectionChanged) an ViewModel-Befehle in MVVM?. 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