ItemTappedEventArgsConverter
Это ItemTappedEventArgsConverter
преобразователь, позволяющий пользователям извлекать значение Item из ItemTappedEventArgs
объекта. Впоследствии его можно использовать в сочетании с EventToCommandBehavior.
Свойства BaseConverter
Следующие свойства реализуются в базовом классе: public abstract class BaseConverter
Свойство | Description |
---|---|
DefaultConvertReturnValue |
Значение по умолчанию, возвращаемое при IValueConverter.Convert(object?, Type, object?, CultureInfo?) вызове Exception . Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true . |
DefaultConvertBackReturnValue |
Значение по умолчанию, возвращаемое при IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) вызове Exception . Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true . |
Свойства ICommunity набор средств ValueConverter
В следующих свойствах реализованы public interface ICommunityToolkitValueConverter
следующие свойства:
Свойство | Type | Описание |
---|---|---|
DefaultConvertReturnValue |
object? |
Значение по умолчанию, возвращаемое при IValueConverter.Convert(object?, Type, object?, CultureInfo?) вызове Exception . Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true . |
DefaultConvertBackReturnValue |
object? |
Значение по умолчанию, возвращаемое при IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) вызове Exception . Это значение используется, когда сообщество набор средств. Для Maui.Options.ShouldSuppressExceptionsInConverters задано значение true . |
Синтаксис
XAML
Включение пространства имен XAML
Чтобы использовать набор средств в XAML, xmlns
необходимо добавить на страницу или представление следующее:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Поэтому следующее:
<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>
Будет изменено, чтобы включить следующее xmlns
:
<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>
Использование itemTappedEventArgsConverter
Его ItemTappedEventArgsConverter
можно использовать следующим образом в 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">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:ItemTappedEventArgsConverter x:Key="ItemTappedEventArgsConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<VerticalStackLayout Padding="10">
<Label
Text="The ItemTappedEventArgsConverter is a converter that allows users to extract the Item value from an ItemTappedEventArgs object. It can subsequently be used in combination with EventToCommandBehavior."
TextColor="{StaticResource NormalLabelTextColor}"
Margin="0, 0, 0, 20" />
<ListView
BackgroundColor="Transparent"
ItemsSource="{Binding Items}"
SelectedItem="{Binding ItemSelected, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<VerticalStackLayout Margin="6">
<Label Text="{Binding Name, StringFormat='Name: {0}'}"/>
</VerticalStackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Behaviors>
<toolkit:EventToCommandBehavior EventName="ItemTapped"
Command="{Binding ItemTappedCommand}"
EventArgsConverter="{StaticResource ItemTappedEventArgsConverter}" />
</ListView.Behaviors>
</ListView>
</VerticalStackLayout>
</ContentPage>
C#
Его ItemTappedEventArgsConverter
можно использовать следующим образом в C#:
class ItemTappedEventArgsConverterPage : ContentPage
{
public ItemTappedEventArgsConverterPage()
{
var behavior = new EventToCommandBehavior
{
EventName = nameof(ListView.ItemTapped),
EventArgsConverter = new ItemTappedEventArgsConverter()
};
behavior.SetBinding(EventToCommandBehavior.CommandProperty, nameof(ViewModel.ItemTappedCommand);
var listView = new ListView
{
HasUnevenRows = true
};
listView.SetBinding(ListView.ItemsSource, nameof(ViewModel.Items));
listView.Behaviors.Add(behavior);
Content = listView;
}
}
Разметка C#
Наш CommunityToolkit.Maui.Markup
пакет предоставляет гораздо более краткий способ использования этого преобразователя в C#.
using CommunityToolkit.Maui.Markup;
class ItemTappedEventArgsConverterPage : ContentPage
{
public ItemTappedEventArgsConverterPage()
{
Content = new ListView
{
HasUnevenRows = true
}
.Bind(
ListView.ItemsSourceProperty,
static (ViewModel vm) => vm.Items)
.Behaviors(
new EventToCommandBehavior
{
EventName = nameof(ListView.ItemTapped),
EventArgsConverter = new ItemTappedEventArgsConverter()
}
.Bind(
EventToCommandBehavior.CommandProperty,
static (ViewModel vm) => vm.ItemTappedCommand,
mode: BindingMode.OneTime));
}
}
Примеры
Пример этого преобразователя можно найти в действии в сообществе .NET MAUI набор средств пример приложения.
API
Исходный код ItemTappedEventArgsConverter
можно найти в репозитории сообщества .NET MAUI набор средств GitHub.
.NET MAUI Community Toolkit