StringToListConverter
StringToListConverter
ist ein unidirektionaler Konverter, der eine Reihe von Substrings zurückgibt, indem die Eingabezeichenfolge basierend auf einer oder mehreren Trennlinien aufgeteilt wird.
Die Convert
-Methode gibt eine Reihe von Substrings zurückgibt, indem die Eingabezeichenfolge basierend auf einer oder mehreren Trennlinien aufgeteilt wird.
Hinweis
Beachten Sie, dass die erwarteten Trennlinien in der folgenden Rangfolge angegeben werden können:
- als
ConverterParameter
in der Konverterbindung; dadurch werden auch die EigenschaftenSeparators
undSeparator
ersetzt - als
Separators
in der Konverterbindung; dadurch wird die EigenschaftSeparator
ersetzt - als
Separator
-Eigenschaft im Konverter.
Die Methode ConvertBack
wird nicht unterstützt. Das gegenteilige Verhalten finden Sie unter ListToStringConverter
.
BaseConverter-Eigenschaften
Die folgenden Eigenschaften werden in der Basisklasse public abstract class BaseConverter
implementiert:
Eigenschaft | Beschreibung |
---|---|
DefaultConvertReturnValue |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
DefaultConvertBackReturnValue |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
ICommunityToolkitValueConverter-Eigenschaften
Die folgenden Eigenschaften werden im public interface ICommunityToolkitValueConverter
implementiert:
Eigenschaft | Typ | Beschreibung |
---|---|---|
DefaultConvertReturnValue |
object? |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
DefaultConvertBackReturnValue |
object? |
Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) eine Exception auslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf true festgelegt ist. |
Syntax
XAML
Einbinden des XAML-Namespace
Um das Toolkit in XAML verwenden zu können, muss der folgende xmlns
-Abschnitt zu Ihrer Seite oder Ansicht hinzugefügt werden:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Der folgende Abschnitt:
<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>
Würde dann geändert werden, um xmlns
einzubinden:
<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>
Verwenden des StringToListConverter
StringToListConverter
kann wie folgt in XAML verwendet werden:
<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#
StringToListConverter
kann wie folgt in C# verwendet werden:
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
}
};
}
}
C#-Markup
Das Paket CommunityToolkit.Maui.Markup
bietet eine viel präzisere Möglichkeit, diesen Konverter in C# zu verwenden.
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 [] { ",", ".", ";" }
})
}
};
}
}
Eigenschaften
Eigenschaft | Typ | Beschreibung |
---|---|---|
Trennzeichen | string |
Die Zeichenfolge, die den Substring in der eingehenden Zeichenfolge trennt. Dieser Wert wird durch ConverterParameter und Separators ersetzt. Wenn ConverterParameter null ist und Separators leer ist, wird dieser Wert verwendet. |
Trennzeichen | IList<string> |
Die Zeichenfolgen, die den Substring in der eingehenden Zeichenfolge trennen. Dieser Wert wird durch ConverterParameter ersetzt. Wenn ConverterParameter null ist, wird dieser Wert verwendet. |
SplitOptions | StringSplitOptions |
Dies ist eine bitweise Kombination der Enumerationswerte, die angibt, ob Teilzeichenfolgen zugeschnitten und leere Teilzeichenfolgen eingeschlossen werden sollen. |
Beispiele
Ein Beispiel für diesen Konverter in Aktion finden Sie in der Beispielanwendung für das .NET MAUI Community Toolkit.
API
Sie finden den Quellcode für StringToListConverter
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit