Rumah >pembangunan bahagian belakang >C++ >Mengapa Menggunakan RelayCommand untuk Memperbaik Seni Bina WPF MVVM?
Kelebihan RelayCommand dalam seni bina WPF MVVM
Apabila membina aplikasi WPF, mengasingkan kebimbangan model paparan dan paparan adalah penting untuk kebolehselenggaraan dan kebolehujian. RelayCommand ialah arahan yang biasa digunakan dalam seni bina MVVM (Model-View-ViewModel) dan memainkan peranan penting dalam pemisahan ini.
Tujuan RelayCommand
Arahan dalam MVVM memisahkan semantik dan pemanggil operasi daripada logik yang melaksanakan operasi. Penyahgandingan ini membolehkan logik perniagaan diuji secara bebas dan mengekalkan UI dengan longgar digabungkan dengan logik.
Kebolehgunaan merentas perintah
RelayCommand terpakai kepada semua arahan dalam borang. Kawalan WPF seperti Button dan MenuItem mendedahkan Command DependencyProperties supaya arahan yang diisytiharkan dalam model paparan boleh diikat. Untuk peristiwa yang tidak terikat melalui sifat ini, anda boleh menggunakan pencetus interaksi untuk mengaitkannya dengan RelayCommand.
Butang bersyarat dilumpuhkan
Untuk melumpuhkan butang berdasarkan keadaan beberapa kotak teks, anda boleh menggunakan pembina terlebih beban RelayCommand untuk menetapkan predikat CanExecute. Dalam predikat ini anda boleh menyemak sama ada mana-mana harta terikat adalah batal dan kembali palsu yang akan melumpuhkan arahan dan oleh itu butang.
Pelaksanaan RelayCommand lengkap
<code class="language-c#">public class RelayCommand<T> : ICommand { private readonly Action<T> _execute; private readonly Predicate<T> _canExecute; public RelayCommand(Action<T> execute, Predicate<T> canExecute = null) { _execute = execute ?? throw new ArgumentNullException(nameof(execute)); _canExecute = canExecute; } public bool CanExecute(object parameter) => _canExecute == null || _canExecute((T)parameter); public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } public void Execute(object parameter) => _execute((T)parameter); }</code>
Atas ialah kandungan terperinci Mengapa Menggunakan RelayCommand untuk Memperbaik Seni Bina WPF MVVM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!