Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
EventToCommandBehavior ist ein behavior, mit dem Benutzer*innen Command über Event aufrufen können. Es wurde entwickelt, um Befehle Ereignissen zuzuordnen, die von Steuerelementen verfügbar gemacht wurden, die nicht für die Unterstützung von Befehlen konzipiert wurden. Dadurch können Sie beliebige Ereignisse in einem Steuerelement einem Befehl zuordnen.
Wichtig
.NET MAUI Community Toolkit Behaviors legt den BindingContext eines Verhaltens nicht fest, da Verhalten über Stile freigegeben und auf mehrere Steuerelemente angewendet werden können. Weitere Informationen finden Sie unter .NET MAUI Behaviors.
Syntax
Die folgenden Beispiele zeigen, wie Sie einem Button-Steuerelement eine EventToCommandBehavior hinzufügen und dann das angeklickte Ereignis behandeln.
XAML
Einbinden des XAML-Namespace
Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Der folgende Abschnitt:
<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>
Würde dann geändert werden, um xmlns einzubinden:
<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>
Verwenden des EventToCommandBehavior
EventToCommandBehavior kann wie folgt in XAML verwendet werden:
<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#
EventToCommandBehavior kann wie folgt in C# verwendet werden:
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;
}
}
C#-Markup
Das Paket CommunityToolkit.Maui.Markup bietet eine viel präzisere Möglichkeit, dieses Behavior in C# zu verwenden.
using CommunityToolkit.Maui.Markup;
class EventToCommandBehaviorPage : ContentPage
{
public EventToCommandBehaviorPage()
{
Content = new Button()
.Behaviors(new EventToCommandBehavior
{
EventName = nameof(Button.Clicked),
Command = new MyCustomCommand()
});
}
}
Zugreifen auf EventArgs aus dem Ereignis
Es ist möglich, die EventArgs des spezifischen Ereignisses an die Command zu übergeben. Es gibt zwei Möglichkeiten, dies zu erreichen:
1. Verwenden der generischen Implementierung
Bei Verwendung der EventToCommandBehavior<T>-Implementierung wird die EventArgs an die Command-Eigenschaft übergeben, wenn sowohl die Eigenschaften CommandParameter als auch Converter nicht festgelegt sind. Um auf den generischen Typ in XAML zu verweisen, müssen wir die x:TypeArguments-Anweisung verwenden.
Das folgende Beispiel zeigt, wie Sie die generische Implementierung verwenden, um die WebNavigatedEventArgs an den Befehl zu übergeben.
<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. Verwenden der Converter-Eigenschaft
Wenn Sie diese behavior mit Auswahl- oder Tippereignissen verwenden, die von ListView verfügbar gemacht werden, ist ein zusätzlicher Konverter erforderlich. Dieser Konverter konvertiert die Ereignisargumente in einen Befehlsparameter, der dann an die Command übergeben wird. Sie sind auch im .NET MAUI Community Toolkit verfügbar:
Eigenschaften
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
| EventName | Zeichenfolge | Der Name des Ereignisses, das einem Command zugeordnet werden soll. |
| Get-Help | ICommand | Die Command, die ausgeführt werden soll. |
| CommandParameter | Objekt | Ein optionaler Parameter, der an die Command weitergeleitet werden soll. |
| EventArgsConverter | IValueConverter | Eine optionale IValueConverter, mit der EventArgs-Werte in Werte konvertiert werden können, die in die Command übergeben werden. |
Beispiele
Sie finden ein Beispiel für dieses Verhalten in Aktion in der Beispielanwendung für das .NET MAUI Community Toolkit.
API
Sie finden den Quellcode für EventToCommandBehavior über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit