次の方法で共有


ListToStringConverter

ListToStringConverter は、各メンバー間で指定された区切り記号を使って、コレクションのメンバーの連結を返す一方向のコンバーターです。

Convert メソッドは、各メンバー間で指定された区切り記号を使って、コレクションのメンバーの連結を返します。

Note

区切り文字は、次の方法で指定できることに注意してください。

  1. コンバーター バインディングの ConverterParameter として
  2. コンバーターの Separator プロパティとして

ConverterParameter オプションは Separator プロパティよりも優先されることに注意してください。

この ConvertBack メソッドはサポートされていません。 逆のビヘイビアーについては、StringToListConverter を参照してください。

BaseConverter のプロパティ

基底クラス public abstract class BaseConverter には、次のプロパティが実装されています。

プロパティ 説明
DefaultConvertReturnValue IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

ICommunityToolkitValueConverter のプロパティ

public interface ICommunityToolkitValueConverter には次のプロパティが実装されています。

プロパティ タイプ 説明
DefaultConvertReturnValue object? IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue object? IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値です。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

構文

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>

ListToStringConverter の使用

ListToStringConverter は、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.ListToStringConverterPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <toolkit:ListToStringConverter x:Key="ListToStringConverter" Separator="," />
        </ResourceDictionary>
    </ContentPage.Resources>

    <Label Text="{Binding MyListValue, Converter={StaticResource ListToStringConverter}}" />

</ContentPage>

C#

ListToStringConverter は、C# では次のように使用できます。

class ListToStringConverterPage : ContentPage
{
    public ListToStringConverterPage()
    {
        var label = new Label();

        label.SetBinding(
            Label.TextProperty,
            new Binding(
                static (ViewModels vm) => vm.MyListValue,
                converter: new ListToStringConverter() { Separator = "," }));

        Content = label;
    }
}

C# Markup

この CommunityToolkit.Maui.Markup パッケージを使うと、より簡潔な方法でこのコンバーターを C# で使用できます。

using CommunityToolkit.Maui.Markup;

class ListToStringConverterPage : ContentPage
{
    public ListToStringConverterPage()
    {
        Content = new Label()
            .Bind(
                Label.TextProperty,
                static (ViewModel vm) => vm.MyListValue,
                converter: new ListToStringConverter(),
                converterParameter: ",");
    }
}

Properties

プロパティ タイプ 説明
Separator string コレクション内の各項目を区切る値。 ConverterParameter が指定されている場合、この値よりも優先されます。 ConverterParameter が null の場合は、この Separator プロパティが使われます。

このコンバーターの動作の例は、.NET MAUI Community Toolkit サンプル アプリケーションで確認できます。

API

ListToStringConverter のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。