Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
RelayCommand dan RelayCommand<T> adalah ICommand implementasi yang dapat mengekspos metode atau mendelegasikan ke tampilan. Jenis ini bertindak sebagai cara untuk mengikat perintah antara elemen viewmodel dan UI.
API Platform:
RelayCommand,RelayCommand<T>,IRelayCommand,IRelayCommand<T>
Cara kerjanya
RelayCommand dan RelayCommand<T> memiliki fitur utama berikut:
- Mereka menyediakan implementasi
ICommanddasar antarmuka. - Mereka juga mengimplementasikan
IRelayCommandantarmuka (danIRelayCommand<T>) , yang mengeksposNotifyCanExecuteChangedmetode untuk meningkatkanCanExecuteChangedperistiwa. - Mereka mengekspos konstruktor mengambil delegasi seperti
ActiondanFunc<T>, yang memungkinkan pembungkusan metode standar dan ekspresi lambda.
Bekerja dengan ICommand
Berikut ini memperlihatkan cara menyiapkan perintah sederhana:
public class MyViewModel : ObservableObject
{
public MyViewModel()
{
IncrementCounterCommand = new RelayCommand(IncrementCounter);
}
private int counter;
public int Counter
{
get => counter;
private set => SetProperty(ref counter, value);
}
public ICommand IncrementCounterCommand { get; }
private void IncrementCounter() => Counter++;
}
Dan antarmuka pengguna relatif kemudian bisa (menggunakan WinUI XAML):
<Page
x:Class="MyApp.Views.MyPage"
xmlns:viewModels="using:MyApp.ViewModels">
<Page.DataContext>
<viewModels:MyViewModel x:Name="ViewModel"/>
</Page.DataContext>
<StackPanel Spacing="8">
<TextBlock Text="{x:Bind ViewModel.Counter, Mode=OneWay}"/>
<Button
Content="Click me!"
Command="{x:Bind ViewModel.IncrementCounterCommand}"/>
</StackPanel>
</Page>
Pengikatan Button ke ICommand dalam viewmodel, yang membungkus metode privat IncrementCounter . menampilkan TextBlock nilai properti dan diperbarui Counter setiap kali nilai properti berubah.
Contoh
- Lihat contoh aplikasi (untuk beberapa kerangka kerja UI) untuk melihat Toolkit MVVM beraksi.
- Anda juga dapat menemukan lebih banyak contoh dalam pengujian unit.
MVVM Toolkit