Sdílet prostřednictvím


EventToCommandBehavior

Jedná se EventToCommandBehavior o objektbehavior, který uživateli umožňuje vyvolat Command prostřednictvím .Event Je navržená tak, aby přidružila příkazy k událostem vystaveným ovládacími prvky, které nebyly navrženy tak, aby podporovaly příkazy. Umožňuje namapovat libovolnou událost ovládacího prvku na příkaz.

Důležité

Chování sady nástrojů .NET MAUI Community Toolkit nenastavuje BindingContext chování, protože chování lze sdílet a použít u více ovládacích prvků prostřednictvím stylů. Další informace najdete v tématu Chování rozhraní .NET MAUI.

Syntaxe

Následující příklady ukazují, jak přidat EventToCommandBehavior ovládací Button prvek a zpracovat kliknutou událost.

XAML

Zahrnutí oboru názvů XAML

Pokud chcete použít sadu nástrojů v XAML, musíte do stránky nebo zobrazení přidat následující xmlns položky:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Proto platí následující:

<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>

Bylo by změněno tak, aby zahrnovalo xmlns následující:

<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>

Použití eventToCommandBehavior

V XAML je možné ho EventToCommandBehavior použít následujícím způsobem:

<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#

V EventToCommandBehavior jazyce C# je možné ho použít následujícím způsobem:

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;
    }
}

Revize jazyka C#

Náš CommunityToolkit.Maui.Markup balíček nabízí mnohem stručnější způsob použití Behavior v jazyce C#.

using CommunityToolkit.Maui.Markup;

class EventToCommandBehaviorPage : ContentPage
{
    public EventToCommandBehaviorPage()
    {
        Content = new Button()
        .Behaviors(new EventToCommandBehavior
        {
            EventName = nameof(Button.Clicked),
            Command = new MyCustomCommand()
        });                 
    }
}

Přístup k eventArgs z události

Je možné, EventArgs aby konkrétní událost byla předána Commanddo . Existují dva způsoby, jak toho dosáhnout:

1. Použijte obecnou implementaci.

Při použití EventToCommandBehavior<T> implementace EventArgs bude předán do Command vlastnosti, pokud nejsou nastaveny jak Converter vlastnostiCommandParameter, tak i vlastnosti. Abychom mohli odkazovat na obecný typ v XAML, musíme použít direktivu x:TypeArguments .

Následující příklad ukazuje, jak použít obecnou implementaci předat WebNavigatedEventArgs do příkazu.

<WebView Source="https://github.com">
    <WebView.Behaviors>
        <toolkit:EventToCommandBehavior
            x:TypeArguments="WebNavigatedEventArgs"
            EventName="Navigated"
            Command="{Binding WebViewNavigatedCommand}" />
    </WebView.Behaviors>
</WebView>

2. Použití vlastnosti Converter

Při použití této behavior možnosti s výběrem nebo klepnutím na události vystavené dalším převaděčem ListView se vyžaduje. Tento převaděč převede argumenty události na parametr příkazu, který se pak předá do Command. Jsou k dispozici také v sadě nástrojů .NET MAUI Community Toolkit:

Vlastnosti

Vlastnost Type Popis
EventName string Název události, která by měla být přidružena k .Command
Příkaz Icommand To Command by se mělo provést.
Commandparameter objekt Volitelný parametr pro přeposílání do objektu Command.
EventArgsConverter IValueConverter Volitelné IValueConverter , které lze použít k převodu EventArgs hodnot na hodnoty předané do objektu Command.

Příklady

Příklad tohoto chování v akci najdete v ukázkové aplikaci .NET MAUI Community Toolkit.

rozhraní API

Zdrojový kód EventToCommandBehavior najdete v úložišti .NET MAUI Community Toolkit na GitHubu.