EventToCommandBehavior
EventToCommandBehavior
è un oggetto behavior
che consente all'utente di richiamare un oggetto Command
tramite un oggetto Event
. È progettato per associare comandi agli eventi esposti da controlli che non sono stati progettati per supportare i comandi. Consente di eseguire il mapping di qualsiasi evento arbitrario in un controllo a un comando.
Importante
I comportamenti di .NET MAUI Community Toolkit non impostano l'oggetto BindingContext
di un comportamento, perché i comportamenti possono essere condivisi e applicati a più controlli tramite stili. Per altre informazioni, vedere Comportamenti MAUI di .NET
Sintassi
Negli esempi seguenti viene illustrato come aggiungere un EventToCommandBehavior
oggetto a un Button
controllo e quindi gestire l'evento clicked.
XAML
Inclusione dello spazio dei nomi XAML
Per usare il toolkit in XAML, è necessario aggiungere le informazioni seguenti xmlns
nella pagina o nella visualizzazione:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Di conseguenza:
<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>
Verrà modificato in modo da includere l'oggetto xmlns
come indicato di seguito:
<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>
Uso di EventToCommandBehavior
Può EventToCommandBehavior
essere usato come segue in 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>
<Button.Behaviors>
<toolkit:EventToCommandBehavior
EventName="Clicked"
Command="{Binding Source={x:Reference Page}, Path=BindingContext.MyCustomCommand}" />
</Button.Behaviors>
</Button>
</ContentPage>
C#
Può EventToCommandBehavior
essere usato come indicato di seguito in 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;
}
}
C# Markup
Il CommunityToolkit.Maui.Markup
pacchetto offre un modo molto più conciso per usarlo Behavior
in C#.
using CommunityToolkit.Maui.Markup;
class EventToCommandBehaviorPage : ContentPage
{
public EventToCommandBehaviorPage()
{
Content = new Button()
.Behaviors(new EventToCommandBehavior
{
EventName = nameof(Button.Clicked),
Command = new MyCustomCommand()
});
}
}
Accesso a EventArgs dall'evento
È possibile che l'oggetto EventArgs
dell'evento specifico venga passato a Command
. A questo scopo è possibile procedere in due modi:
1. Usare l'implementazione generica
Utilizzando l'implementazione EventToCommandBehavior<T>
EventArgs
, verrà passato alla Command
proprietà se entrambe le CommandParameter
proprietà e Converter
non sono impostate. Per fare riferimento al tipo generico in XAML, è necessario usare la x:TypeArguments
direttiva .
Nell'esempio seguente viene illustrato come usare l'implementazione generica per passare al WebNavigatedEventArgs
comando .
<WebView Source="https://github.com">
<WebView.Behaviors>
<toolkit:EventToCommandBehavior
x:TypeArguments="WebNavigatedEventArgs"
EventName="Navigated"
Command="{Binding WebViewNavigatedCommand}" />
</WebView.Behaviors>
</WebView>
2. Utilizzare la proprietà Converter
Quando si usa questo behavior
oggetto con eventi di selezione o tocco esposti da ListView
un convertitore aggiuntivo, è necessario. Questo convertitore converte gli argomenti dell'evento in un parametro di comando che viene quindi passato all'oggetto Command
. Sono disponibili anche in .NET MAUI Community Toolkit:
Proprietà
Proprietà | Type | Descrizione |
---|---|---|
EventName | string | Nome dell'evento che deve essere associato a un oggetto Command . |
Comando | ICommand | Oggetto Command che deve essere eseguito. |
CommandParameter | oggetto | Parametro facoltativo da inoltrare all'oggetto Command . |
EventArgsConverter | IValueConverter | Oggetto facoltativo IValueConverter che può essere usato per convertire EventArgs i valori in valori passati in Command . |
Esempi
È possibile trovare un esempio di questo comportamento in azione nell'applicazione di esempio .NET MAUI Community Toolkit.
API
È possibile trovare il codice sorgente per EventToCommandBehavior
over nel repository GitHub di .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit