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 Command
do . 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.
.NET MAUI Community Toolkit