Bagikan melalui


EventToCommandBehavior

EventToCommandBehavior adalah behavior yang memungkinkan pengguna untuk memanggil Command melalui Event. Ini dirancang untuk mengaitkan Perintah ke peristiwa yang diekspos oleh kontrol yang tidak dirancang untuk mendukung Perintah. Ini memungkinkan Anda untuk memetakan peristiwa sewenang-wenang pada kontrol ke Perintah.

Penting

Perilaku Toolkit Komunitas .NET MAUI tidak mengatur BindingContext perilaku, karena perilaku dapat dibagikan dan diterapkan ke beberapa kontrol melalui gaya. Untuk informasi selengkapnya, lihat Perilaku MAUI .NET

Sintaks

Contoh berikut menunjukkan cara menambahkan EventToCommandBehavior ke Button kontrol lalu menangani peristiwa yang diklik.

XAML

Menyertakan namespace XAML

Untuk menggunakan toolkit di XAML, hal berikut xmlns perlu ditambahkan ke halaman atau tampilan Anda:

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

Oleh karena itu hal-hal berikut:

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

Akan dimodifikasi untuk menyertakan xmlns sebagai berikut:

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

Menggunakan EventToCommandBehavior

EventToCommandBehavior dapat digunakan sebagai berikut dalam 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#

EventToCommandBehavior dapat digunakan sebagai berikut di 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

Paket kami CommunityToolkit.Maui.Markup menyediakan cara yang jauh lebih ringkas untuk menggunakan ini Behavior di C#.

using CommunityToolkit.Maui.Markup;

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

Mengakses EventArgs dari peristiwa

Dimungkinkan EventArgs untuk memiliki peristiwa tertentu yang diteruskan ke Command. Ada dua cara untuk mencapai hal ini:

1. Gunakan implementasi generik

Dengan menggunakan EventToCommandBehavior<T> implementasi, EventArgs akan diteruskan ke Command properti jika CommandParameter properti dan Converter tidak ditetapkan. Untuk merujuk ke jenis generik di XAML, kita perlu menggunakan arahan x:TypeArguments .

Contoh berikut menunjukkan cara menggunakan implementasi generik untuk meneruskan WebNavigatedEventArgs ke perintah .

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

2. Gunakan properti Converter

Saat menggunakan ini behavior dengan pilihan atau ketuk peristiwa yang diekspos oleh ListView pengonversi tambahan diperlukan. Pengonversi ini mengonversi argumen peristiwa menjadi parameter perintah yang kemudian diteruskan ke Command. Mereka juga tersedia di Toolkit Komunitas MAUI .NET:

Properti

Properti Tipe Deskripsi
EventName string Nama peristiwa yang harus dikaitkan dengan Command.
Perintah ICommand Yang Command harus dijalankan.
CommandParameter object Parameter opsional untuk diteruskan ke Command.
EventArgsConverter IValueConverter Opsional IValueConverter yang dapat digunakan untuk mengonversi EventArgs nilai ke nilai yang diteruskan ke Commanddalam .

Contoh

Anda dapat menemukan contoh perilaku ini dalam tindakan di Aplikasi Sampel Toolkit Komunitas .NET MAUI.

API

Anda dapat menemukan kode sumber untuk EventToCommandBehavior lebih pada repositori GitHub .NET MAUI Community Toolkit.