Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
RelayCommand et RelayCommand<T> sont des implémentations ICommand qui peuvent exposer une méthode ou déléguer à l’affichage. Ces types agissent comme un moyen de lier des commandes entre les éléments viewmodel et d’interface utilisateur.
APIs de plateforme :
RelayCommand,RelayCommand<T>,IRelayCommand,IRelayCommand<T>
Fonctionnement
Les types RelayCommand et RelayCommand<T> incluent les principales fonctionnalités suivantes :
- Ils fournissent une implémentation de base de l’interface
ICommand. - Ils implémentent également l’interface
IRelayCommand(etIRelayCommand<T>), qui expose une méthodeNotifyCanExecuteChangedpour déclencher l’événementCanExecuteChanged. - Ils exposent des constructeurs prenant des délégués tels que
ActionetFunc<T>, ce qui permet l’habillage de méthodes standard et d’expressions lambda.
Utilisation de ICommand
Voici comment configurer une commande simple :
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++;
}
Et l’interface utilisateur relative peut ensuite être (à l’aide de XAML WinUI) :
<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>
Button lie au ICommand dans le viewmodel, qui encapsule la méthode IncrementCounter privée. TextBlock affiche la valeur de la propriété Counter et est mis à jour chaque fois que la valeur de la propriété change.
Exemples
- Consultez l’exemple d’application (pour plusieurs infrastructures d’interface utilisateur) afin de voir le Kit d’outils Modèle-vue-vue modèle (MVVM) en action.
- Vous trouverez également d’autres exemples dans les tests unitaires.