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.
Das EventToCommandBehavior ist eine behavior, die es dem Benutzer ermöglicht, eine Command über eine Event aufzurufen. Sie wurde entwickelt, um Befehle Ereignissen zuzuordnen, die von Steuerelementen verfügbar gemacht wurden, die nicht zur Unterstützung von Befehlen entwickelt wurden. Damit können Sie beliebige Ereignisse in einem Steuerelement einem Befehl zuordnen.
Important
Die .NET MAUI Community Toolkit Behaviors legen die BindingContext eines Verhaltens nicht fest, da Verhaltensweisen ü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 ein EventToCommandBehavior hinzufügen und anschließend das Click-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"
Daher das Folgende:
<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 geändert werden, um das xmlns wie folgt 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 von EventToCommandBehavior
Dies 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#
Dies 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
Unser CommunityToolkit.Maui.Markup Paket bietet eine viel präzisere Möglichkeit, dies 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()
});
}
}
Zugriff auf die EventArgs aus dem Ereignis
Es ist möglich, das EventArgs des spezifischen Ereignisses in die Command zu übergeben. Es gibt zwei Möglichkeiten, dies zu erreichen:
1. Verwenden der generischen Implementierung
Durch die Verwendung der EventToCommandBehavior<T>-Implementierung wird EventArgs an die Command-Eigenschaft übergeben, wenn weder die CommandParameter- noch die Converter-Eigenschaft festgelegt sind. Um auf den generischen Typ in XAML zu verweisen, müssen wir die x:TypeArguments Direktive verwenden.
Das folgende Beispiel zeigt, wie Sie die generische Implementierung verwenden, um 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 dieses behavior mit den von ListView bereitgestellten Auswahl- oder Tippen-Ereignissen verwenden, ist ein zusätzlicher Konverter erforderlich. Dieser Konverter wandelt die Ereignisargumente in einen Befehlsparameter um, der dann an den Command übergeben wird. Sie sind auch im .NET MAUI Community Toolkit verfügbar:
Eigenschaften
| Eigentum | Typ | Beschreibung |
|---|---|---|
| Ereignisname | Schnur | Der Name des Ereignisses, das einem Command zugeordnet werden sollte. |
| Command | ICommand | Das Command, das ausgeführt werden soll. |
| CommandParameter | Objekt | Ein optionaler Parameter zum Weiterleiten an die Command. |
| EventArgsConverter | IValueConverter | Ein optionales IValueConverter, das verwendet werden kann, um EventArgs-Werte in Werte zu konvertieren, die an Command übergeben werden. |
Beispiele
Sie finden ein Beispiel für dieses Verhalten in Aktion in der .NET MAUI Community Toolkit-Beispielanwendung.
API
Sie finden den Quellcode für EventToCommandBehavior im .NET MAUI Community Toolkit GitHub Repository.
.NET MAUI Community Toolkit