StringToListConverter
Jest StringToListConverter
to jeden ze sposobów konwerter, który zwraca zestaw podciągów przez podzielenie ciągu wejściowego na podstawie jednego lub większej liczby separatorów.
Metoda Convert
zwraca zestaw podciągów, dzieląc ciąg wejściowy na podstawie jednego lub większej liczby separatorów.
Uwaga
Należy pamiętać, że separatory można podać w następującej kolejności pierwszeństwa:
ConverterParameter
jako w powiązaniu konwertera; zastępuje to zarówno właściwości, jakSeparators
iSeparator
Separators
jako właściwość konwertera; zastępuje toSeparator
właściwośćSeparator
jako właściwość konwertera.
Metoda nie jest obsługiwana ConvertBack
. Aby uzyskać odwrotne zachowanie, zobacz .ListToStringConverter
Właściwości obiektu BaseConverter
Następujące właściwości są implementowane w klasie bazowej: public abstract class BaseConverter
Właściwości | opis |
---|---|
DefaultConvertReturnValue |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
DefaultConvertBackReturnValue |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
Właściwości ICommunityToolkitValueConverter
Następujące właściwości są implementowane w pliku public interface ICommunityToolkitValueConverter
:
Właściwość | Type | Opis |
---|---|---|
DefaultConvertReturnValue |
object? |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.Convert(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
DefaultConvertBackReturnValue |
object? |
Wartość domyślna, która ma być zwracana, gdy IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) zgłasza wartość Exception . Ta wartość jest używana, gdy właściwość CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters jest ustawiona na true wartość . |
Składnia
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>
Korzystanie z elementu StringToListConverter
Można StringToListConverter
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="CommunityToolkit.Maui.Sample.Pages.Converters.StringToListConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:StringToListConverter x:Key="StringToListConverter" SplitOptions="RemoveEmptyEntries">
<toolkit:StringToListConverter.Separators>
<x:String>,</x:String>
<x:String>.</x:String>
<x:String>;</x:String>
</toolkit:StringToListConverter.Separators>
</toolkit:StringToListConverter>
</ResourceDictionary>
</ContentPage.Resources>
<VerticalStackLayout>
<Entry
Placeholder="Enter some text separated by ',' or '.' or ';'"
Text="{Binding MyValue}" />
<CollectionView ItemsSource="{Binding MyValue, Converter={StaticResource StringToListConverter}}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding .}" />
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</VerticalStackLayout>
</ContentPage>
C#
Można StringToListConverter
go użyć w następujący sposób w języku C#:
class StringToListConverterPage : ContentPage
{
public StringToListConverterPage()
{
var entry = new Entry { Placeholder = "Enter some text separated by ',' or '.' or ';'" };
entry.SetBinding(Entry.TextProperty, new Binding(static (ViewModel vm) => vm.MyValue));
var stringToListConverter = new StringToListConverter
{
SplitOptions = System.StringSplitOptions.RemoveEmptyEntries,
Separators = new [] { ",", ".", ";" }
};
var collectionView = new CollectionView
{
ItemTemplate = new DataTemplate(() =>
{
var itemLabel = new Label();
itemLabel.SetBinding(Label.TextProperty, path: ".");
return itemLabel;
})
};
collectionView.SetBinding(
CollectionView.ItemsSourceProperty,
new Binding(
static (ViewModel vm) => vm.MyValue,
converter: stringToListConverter));
Content = new VerticalStackLayout
{
Children =
{
entry,
collectionView
}
};
}
}
Znaczniki języka C#
Nasz CommunityToolkit.Maui.Markup
pakiet zapewnia znacznie bardziej zwięzły sposób używania tego konwertera w języku C#.
using CommunityToolkit.Maui.Markup;
class StringToListConverterPage : ContentPage
{
public StringToListConverterPage()
{
Content = new VerticalStackLayout
{
Children =
{
new Entry { Placeholder = "Enter some text separated by ',' or '.' or ';'" }
.Bind(
Entry.TextProperty,
static (ViewModel vm) => vm.MyValue),
new CollectionView
{
ItemTemplate = new DataTemplate(() => new Label().Bind(Label.TextProperty, path: Binding.SelfPath))
}.Bind(
CollectionView.ItemsSourceProperty,
static (ViewModel vm) => vm.MyValue,
converter: new StringToListConverter
{
SplitOptions = System.StringSplitOptions.RemoveEmptyEntries,
Separators = new [] { ",", ".", ";" }
})
}
};
}
}
Właściwości
Właściwości | Type | Opis |
---|---|---|
Separator | string |
Ciąg, który rozdziela podciągi w ciągu przychodzącym. Ta wartość jest zastępowana zarówno przez , jak ConverterParameter i Separators . Jeśli ConverterParameter wartość jest null pusta, Separators zostanie użyta ta wartość. |
Separatory | IList<string> |
Ciągi, które rozdzielają podciągi w ciągu przychodzącym. Ta wartość jest zastępowana przez ConverterParameter . Jeśli ConverterParameter ta null wartość zostanie użyta. |
Podziałopcje | StringSplitOptions |
Bitowa kombinacja wartości wyliczenia, która określa, czy przycinać podciągy i uwzględniać puste podciągy. |
Przykłady
Przykład tego konwertera można znaleźć w aplikacji przykładowej zestawu narzędzi .NET MAUI Community Toolkit.
interfejs API
Kod źródłowy można StringToListConverter
znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit