Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengikat Peristiwa UI WPF (seperti SelectionChanged) kepada Perintah ViewModel dalam MVVM?

Bagaimana untuk Mengikat Peristiwa UI WPF (seperti SelectionChanged) kepada Perintah ViewModel dalam MVVM?

Barbara Streisand
Lepaskan: 2025-01-12 22:36:44
asal
628 orang telah melayarinya

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

Ikat peristiwa UI WPF (cth. SelectionChanged) kepada arahan ViewModel dalam MVVM

Corak MVVM menyokong pengasingan logik UI daripada lapisan data. Atas sebab ini, adalah penting untuk mengendalikan acara UI dalam ViewModel. Dalam contoh kod yang disediakan, acara SelectionChanged dikendalikan dalam kod di belakang. Mari kita terokai cara mengalihkan acara ini ke ViewModel.

Ikat acara UI pada perintah

WPF menyediakan ciri berkuasa yang dipanggil pengikatan data. Ia membolehkan anda mengikat elemen UI pada sifat atau arahan dalam ViewModel. Dalam contoh ini, kami mengikat acara SelectionChanged contactsList kepada arahan dalam ViewModel.

Gunakan EventTriggers dan InvokeCommandAction

Untuk melakukan ini, anda boleh menggunakan EventTrigger dan InvokeCommandAction daripada ruang nama Windows.Interactivity. Contohnya adalah seperti berikut:

<code class="language-xml"><ListBox ...>
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
      <i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}" />
    </i:EventTrigger>
  </i:Interaction.Triggers>
</ListBox></code>
Salin selepas log masuk

Rujukan ruang nama 'i'

Untuk menggunakan EventTrigger dan InvokeCommandAction, anda perlu merujuk pemasangan System.Windows.Interactivity. Buka panel Rujukan projek dan navigasi ke Tambah Rujukan > Ikat arahan ke ViewModel

Dalam ViewModel, cipta arahan awam untuk mengendalikan acara:

Ikat arahan pada DataContext tetingkap:

<code class="language-csharp">public ICommand SelectedItemChangedCommand { get; }</code>
Salin selepas log masuk

Mengendalikan acara SelectedItemChanged

<code class="language-csharp">this.DataContext = new MyAppViewModel();</code>
Salin selepas log masuk

Dalam MyAppViewModel, laksanakan SelectedItemChangedCommand dan lakukan logik yang diperlukan, seperti mendapatkan dan mengumpulkan teg, sama seperti dalam pengendali acara asal. Dengan mengikut langkah ini, anda telah berjaya mengalihkan pengendalian acara SelectionChanged ke ViewModel, dengan itu mengikut prinsip MVVM dan memisahkan logik UI daripada lapisan data.

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Peristiwa UI WPF (seperti SelectionChanged) kepada Perintah ViewModel dalam MVVM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan