Udostępnij za pośrednictwem


EventToCommandBehavior

Jest EventToCommandBehavior to element behavior , który umożliwia użytkownikowi wywoływanie Command elementu za pośrednictwem elementu Event. Jest przeznaczony do kojarzenia poleceń z zdarzeniami udostępnianymi przez kontrolki, które nie zostały zaprojektowane do obsługi poleceń. Umożliwia mapowanie dowolnego zdarzenia na kontrolce na polecenie.

Ważne

Zachowania zestawu narzędzi .NET MAUI Community Toolkit nie ustawiają BindingContext zachowania, ponieważ zachowania mogą być współużytkowane i stosowane do wielu kontrolek za pomocą stylów. Aby uzyskać więcej informacji, zobacz Zachowania maUI platformy .NET

Składnia

W poniższych przykładach pokazano, jak dodać element EventToCommandBehavior do kontrolki Button , a następnie obsłużyć kliknięte zdarzenie.

XAML

Dołączanie przestrzeni nazw XAML

Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns elementy do strony lub widoku:

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

W związku z tym następujące elementy:

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

Zostanie zmodyfikowana tak, aby zawierała następujące xmlns elementy:

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

Używanie elementu EventToCommandBehavior

Można EventToCommandBehavior go użyć w następujący sposób w języku 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#

Można EventToCommandBehavior go użyć w następujący sposób w języku 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;
    }
}

Znaczniki języka C#

Nasz CommunityToolkit.Maui.Markup pakiet zapewnia znacznie bardziej zwięzły sposób korzystania z niego Behavior w języku C#.

using CommunityToolkit.Maui.Markup;

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

Uzyskiwanie dostępu do zdarzenia EventArgs ze zdarzenia

Istnieje możliwość EventArgs przekazania określonego zdarzenia do obiektu Command. Istnieją dwa sposoby osiągnięcia tego celu:

1. Użyj implementacji ogólnej

Przy użyciu implementacji EventToCommandBehavior<T>EventArgs właściwość zostanie przekazana do Command właściwości , jeśli właściwości CommandParameter i Converter nie są ustawione. Aby odwołać się do typu ogólnego w języku XAML, musimy użyć x:TypeArguments dyrektywy.

W poniższym przykładzie pokazano, jak za pomocą implementacji ogólnej przekazać WebNavigatedEventArgs element do polecenia .

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

2. Użyj właściwości Konwerter

W przypadku korzystania z tej behavior opcji z wyborem lub naciśnięciem zdarzeń uwidocznionych przez ListView dodatkowy konwerter jest wymagany. Ten konwerter konwertuje argumenty zdarzeń na parametr polecenia, który następnie jest przekazywany na Command. Są one również dostępne w zestawie narzędzi .NET MAUI Community Toolkit:

Właściwości

Właściwości Type Opis
EventName string Nazwa zdarzenia, które powinno być skojarzone z elementem Command.
Polecenie Icommand Element Command , który należy wykonać.
Commandparameter obiekt Opcjonalny parametr do przekazania do elementu Command.
EventArgsConverter Ivalueconverter Opcjonalnie IValueConverter , który może służyć do konwertowania EventArgs wartości na wartości przekazane do elementu Command.

Przykłady

Przykład tego zachowania można znaleźć w przykładzie przykładowym aplikacji zestawu narzędzi .NET MAUI Community Toolkit.

interfejs API

Kod źródłowy można EventToCommandBehavior znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.