EventToCommandBehavior
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>
<Button.Behaviors>
<toolkit:EventToCommandBehavior
EventName="Clicked"
Command="{Binding Source={x:Reference Page}, Path=BindingContext.MyCustomCommand}" />
</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">
<WebView.Behaviors>
<toolkit:EventToCommandBehavior
x:TypeArguments="WebNavigatedEventArgs"
EventName="Navigated"
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