EventToCommandBehavior
Le EventToCommandBehavior
est un behavior
qui permet à l’utilisateur d’appeler une Command
via un Event
. Il est conçu pour associer des commandes à des événements exposés par des contrôles qui n’ont pas été conçus pour prendre en charge des commandes. Il vous permet de mapper n’importe quel événement arbitraire sur un contrôle à une commande.
Important
Les comportements du kit d’outils de la communauté .NET MAUI ne définissent pas les BindingContext
d’un comportement, car ceux-ci peuvent être partagés et appliqués à plusieurs contrôles par l’intermédiaire de styles. Pour plus d’informations, consultez Comportements MAUI .NET
Syntaxe
Les exemples suivants montrent comment ajouter EventToCommandBehavior
à un contrôle Button
, puis gérer l’évènement cliqué.
XAML
Y compris l’espace de noms XAML
Pour utiliser le kit de ressources dans XAML, le xmlns
suivant doit être ajouté à votre page ou à votre affichage :
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Il en résulte ce qui suit :
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
</ContentPage>
Serait modifié pour inclure le xmlns
de la manière suivante :
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Utiliser EventToCommandBehavior
Le EventToCommandBehavior
peut être utilisé de la manière suivante dans XAML :
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="MyLittleApp.MainPage"
x:Name="Page">
<Button x:Name="MyButton">
<Button.Behaviors>
<toolkit:EventToCommandBehavior
EventName="Clicked"
BindingContext="{Binding Path=BindingContext, Source={x:Reference MyButton}, x:DataType=Button}"
Command="{Binding Source={x:Reference Page}, Path=BindingContext.MyCustomCommand, x:DataType=ContentPage}" />
</Button.Behaviors>
</Button>
</ContentPage>
C#
Le EventToCommandBehavior
peut être utilisé de la manière suivante dans C# :
class EventToCommandBehaviorPage : ContentPage
{
public EventToCommandBehaviorPage()
{
var button = new Button();
var behavior = new EventToCommandBehavior
{
EventName = nameof(Button.Clicked),
Command = new MyCustomCommand()
};
button.Behaviors.Add(behavior);
Content = entry;
}
}
Balisage C#
Notre package CommunityToolkit.Maui.Markup
offre un moyen beaucoup plus concis d’utiliser ce Behavior
en C#.
using CommunityToolkit.Maui.Markup;
class EventToCommandBehaviorPage : ContentPage
{
public EventToCommandBehaviorPage()
{
Content = new Button()
.Behaviors(new EventToCommandBehavior
{
EventName = nameof(Button.Clicked),
Command = new MyCustomCommand()
});
}
}
Accéder à EventArgs depuis l’évènement
Il est possible que l’EventArgs
spécifique ait été transmis dans la Command
. Il existe deux moyens de parvenir à cet objectif :
1. Utiliser l’implémentation générique
En utilisant l’implémentation EventToCommandBehavior<T>
, EventArgs
est transmis à la propriété Command
si les propriétés CommandParameter
et Converter
ne sont pas définies. Pour faire référence au type générique dans XAML, nous devons utiliser la directive x:TypeArguments
.
L’exemple suivant montre comment utiliser l’implémentation générique pour transmettre WebNavigatedEventArgs
dans la commande.
<WebView
Source="https://github.com"
x:Name="MyWebView">
<WebView.Behaviors>
<toolkit:EventToCommandBehavior
x:TypeArguments="WebNavigatedEventArgs"
EventName="Navigated"
BindingContext="{Binding Path=BindingContext, Source={x:Reference MyWebView}, x:DataType=WebView}"
Command="{Binding WebViewNavigatedCommand}" />
</WebView.Behaviors>
</WebView>
2. Utiliser la propriété Converter
Lorsque vous utilisez ce behavior
avec des évènements de sélection ou d’appui exposés par ListView
, un convertisseur supplémentaire est nécessaire. Ce convertisseur convertit les arguments d’évènement en paramètre de commande, qui est ensuite transmis à la Command
. Ils sont également disponibles dans le kit d’outils de la communauté .NET MAUI :
Propriétés
Propriété | Type | Description |
---|---|---|
EventName | string | Nom de l’évènement qui doit être associé à une Command . |
Commande | ICommand | La Command qui doit être exécutée. |
CommandParameter | object | Paramètre facultatif à transférer vers la Command . |
EventArgsConverter | IValueConverter | IValueConverter facultatif qui peut être utilisé pour convertir des valeurs EventArgs en valeurs transmises dans la Command . |
Exemples
Vous trouverez un exemple de ce comportement en action dans l’Exemple d’application du kit de ressources de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deEventToCommandBehavior
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit