.NET マルチプラットフォーム アプリ UI (.NET MAUI) データ バインディングは、通常、ソース プロパティからターゲット プロパティにデータを転送し、場合によってはターゲット プロパティからソース プロパティにデータを転送します。 この転送は、ソースプロパティとターゲットプロパティが同じ型の場合、または暗黙的な変換によって一方の型を他の型に変換できる場合に簡単です。 そうでない場合は、型変換を行う必要があります。
コンバーターの詳細については、.NET MAUIドキュメントを参照してください。
.NET MAUI Community Toolkit コンバーター
.NET MAUI Community Toolkit には、開発者の生活を容易にするために、事前に構築された再利用可能なコンバーターのコレクションが用意されています。 ツールキットによって提供されるコンバーターを次に示します。
| コンバータ | Description |
|---|---|
BoolToObjectConverter |
BoolToObjectConverterは、ユーザーがbool値バインディングを特定のオブジェクトに変換できるようにするコンバーターです。 |
ByteArrayToImageSourceConverter |
ByteArrayToImageSourceConverterは、ユーザーがbyte配列から受信値を変換し、ImageSourceを返すコンバーターです。 |
ColorToBlackOrWhiteConverter |
ColorToBlackOrWhiteConverterは、ユーザーが受信ColorをColors.BlackまたはColors.Whiteのモノクロ値に変換できる一方向コンバーターです。 |
ColorToByteAlphaConverter |
ColorToByteAlphaConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 255 の値としてアルファ コンポーネントに変換できます。 |
ColorToByteBlueConverter |
ColorToByteBlueConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 255 の値として青色のコンポーネントに変換できます。 |
ColorToByteGreenConverter |
ColorToByteGreenConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 255 の値として緑色のコンポーネントに変換できます。 |
ColorToByteRedConverter |
ColorToByteRedConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 255 の値として赤のコンポーネントに変換できます。 |
ColorToCmykStringConverter |
ColorToCmykStringConverterは一方向コンバーターであり、ユーザーはColor値バインディングを CMYK string同等のものに変換できます。 |
ColorToCmykaStringConverter |
ColorToCmykaStringConverterは一方向コンバーターであり、ユーザーはColor値バインディングを同等の CMYKA string変換できます。 |
ColorToColorForTextConverter |
ColorToColorForTextConverterは一方向コンバーターであり、ユーザーは、受信Colorを人間の目に対して暗いと判断されたかどうかに基づいて、Colors.BlackまたはColors.Whiteのモノクロ値に変換できます。 |
ColorToDegreeHueConverter |
ColorToDegreeHueConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 360 の値として hue コンポーネントに変換できます。 |
ColorToGrayScaleColorConverter |
ColorToGrayScaleColorConverterは、ユーザーが受信Colorをグレースケール Colorに変換できる一方向コンバーターです。 |
ColorToHexRgbStringConverter |
ColorToHexRgbStringConverterは、ユーザーがColor値バインディングを、それに対応するRGBの16進数string表現に変換できるコンバーターです。 |
ColorToHexRgbaStringConverter |
ColorToHexRgbaStringConverterは、ユーザーがColor値バインディングを対応するRGBA 16進数のstring相当値に変換できるコンバーターです。 |
ColorToHslStringConverter |
ColorToHslStringConverterは一方向コンバーターであり、ユーザーはColor値バインディングを HSL string同等のものに変換できます。 |
ColorToHslaStringConverter |
ColorToHslaStringConverterは、ユーザーがColor値バインディングを HSLA string同等のものに変換できる一方向コンバーターです。 |
ColorToInverseColorConverter |
ColorToInverseColorConverterは、ユーザーが受信Colorを逆に変換できる一方向コンバーターです。 |
ColorToPercentBlackKeyConverter |
ColorToPercentBlackKeyConverterは、ユーザーが入力Colorを 0 から 1 の値としてキー コンポーネントに変換できる一方向コンバーターです。 |
ColorToPercentCyanConverter |
ColorToPercentCyanConverterは、ユーザーが受信Colorをシアン成分に 0 から 1 の値として変換できる一方向コンバーターです。 |
ColorToPercentMagentaConverter |
ColorToPercentMagentaConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 1 の値としてマゼンタ コンポーネントに変換できます。 |
ColorToPercentYellowConverter |
ColorToPercentYellowConverterは一方向コンバーターであり、ユーザーは受信Colorを 0 から 1 の値として黄色のコンポーネントに変換できます。 |
ColorToRgbStringConverter |
ColorToRgbStringConverterは、ユーザーがColor値バインディングを RGB string同等の値に変換できるコンバーターです。 |
ColorToRgbaStringConverter |
ColorToRgbaStringConverterは一方向コンバーターであり、ユーザーはColor値バインディングを RGBA string同等のものに変換できます。 |
CompareConverter |
CompareConverterは、IComparableを実装する受信値を受け取り、指定された値と比較し、比較結果を返す一方向コンバーターです。 |
DateTimeOffsetConverter |
DateTimeOffsetConverterは、ユーザーがDateTimeOffsetをDateTimeに変換できるコンバーターです |
DoubleToIntConverter |
DoubleToIntConverterは、ユーザーが受信double値をintに変換できるようにするコンバーターです。 必要に応じて、ユーザーは Ratio プロパティを使用して変換に乗数を指定できます。 |
EnumToBoolConverter |
EnumToBoolConverterは一方向コンバーターであり、指定された列挙値のセットと等しいかどうかに基づいて、Enumを対応するboolに変換できます。 列挙型を表す値のコレクションを、 IsVisible プロパティなどのブール型コントロール プロパティにバインドする場合に便利です。 |
EnumToIntConverter |
EnumToIntConverterは、標準のEnum (拡張 int) を基になるプリミティブ int型に変換できるコンバーターです。 既定の番号付けを持つ列挙型を表す値のコレクションを、 Pickerなどのコントロールにバインドする場合に便利です。 |
ImageResourceConverter |
ImageResourceConverterは、埋め込みイメージ リソース ID を ImageSource に変換するコンバーターです。 |
IndexToArrayItemConverter |
IndexToArrayItemConverterは、int値バインディングを配列内の項目に変換できるコンバーターです。 データ バインドされる int 値は、配列へのアクセスに使用されるインデクサーを表します。 配列は、 ConverterParameterを介して渡されます。 |
IntToBoolConverter |
IntToBoolConverterは、ユーザーが受信int値をboolに変換できるようにするコンバーターです。 |
InvertedBoolConverter |
InvertedBoolConverterは、ユーザーがboolを逆に変換できるコンバーターです。trueはfalseになり、その逆も可能になります。 |
IsEqualConverter |
IsEqualConverterは、バインド値が別の指定した値と等しいかどうかを示すboolを返す一方向コンバーターです。 |
IsInRangeConverter |
IsInRangeConverterは、IComparableを実装する受信値と最小値と最大値を受け取り、最小値と最大値の間にある値の結果を返す一方向コンバーターです。 |
IsListNotNullOrEmptyConverter |
IsListNotNullOrEmptyConverterは、IEnumerableをbool値に変換する一方向コンバーターです。 |
IsListNullOrEmptyConverter |
IsListNullOrEmptyConverterは、IEnumerableをbool値に変換する一方向コンバーターです。 |
IsNotEqualConverter |
IsNotEqualConverterは、バインド値が別の指定された値と等しくないかどうかを示すboolを返す一方向コンバーターです。 |
IsNullConverter |
IsNullConverterは、ユーザーが受信バインディングをbool値に変換できるようにするコンバーターです。 この値は、受信バインディング値が null かどうかを表します。 |
IsNotNullConverter |
IsNotNullConverterは、ユーザーが受信バインディングをbool値に変換できるようにするコンバーターです。 この値は、受信バインディング値が null でない場合を表します。 |
IsStringNotNullOrEmptyConverter |
IsStringNotNullOrEmptyConverterは、バインド値が null ではなく、boolでないかを示すstring.Emptyを返す一方向コンバーターです。 |
IsStringNotNullOrWhiteSpaceConverter |
IsStringNotNullOrWhiteSpaceConverterは、バインド値が null ではなく、boolではなく、空白文字のみを含まないかどうかを示すstring.Emptyを返す一方向コンバーターです。 |
IsStringNullOrEmptyConverter |
IsStringNullOrEmptyConverterは、バインド値が null かboolかを示すstring.Emptyを返す一方向コンバーターです。 |
IsStringNullOrWhiteSpaceConverter |
IsStringNullOrWhiteSpaceConverterは、バインド値が null、bool、または空白文字のみを含むかどうかを示すstring.Emptyを返す一方向コンバーターです。 |
ItemTappedEventArgsConverter |
ItemTappedEventArgsConverterは、ユーザーが ItemTappedEventArgs オブジェクトから Item 値を抽出できるようにするコンバーターです。 その後、 EventToCommandBehavior と組み合わせて使用できます。 |
ListToStringConverter |
ListToStringConverterは、各メンバー間で指定された区切り記号を使用して、コレクションのメンバーの連結を返す一方向コンバーターです。 |
MathExpressionConverter |
MathExpressionConverterは、ユーザーがさまざまな算術演算を実行できるようにするコンバーターです。 |
MultiConverter |
MultiConverterは、すべての受信コンバーターを使用して受信値を順番に変換します。 |
MultiMathExpressionConverter |
MultiMathExpressionConverterは、ユーザーがMultiBindingを使用して複数の値を持つさまざまな算術演算を実行できるようにするコンバーターです。 |
SelectedItemEventArgsConverter |
SelectedItemEventArgsConverterは、ユーザーが SelectedItemEventArgs オブジェクトから Item 値を抽出できるようにするコンバーターです。 その後、 EventToCommandBehavior と組み合わせて使用できます。 |
StateToBoolConverter |
StateToBoolConverterは、指定された値が特定のbooleanのかどうかに基づいてLayoutState結果を返す一方向コンバーターです。 |
StringToListConverter |
StringToListConverterは、1 つ以上の区切り記号に基づいて入力文字列を分割することによって部分文字列のセットを返す一方向コンバーターです。 |
TextCaseConverter |
TextCaseConverterは、ユーザーが入力されるstring型のバインディングの文字ケースを変換できるようにする一方向コンバーターです。
Type プロパティは、文字列に適用する大文字/小文字の形式を指定するために使用されます。 |
VariableMultiValueConverter |
VariableMultiValueConverterは、ユーザーがboolを介してMultiBinding値を 1 つのboolに変換できるコンバーターです。 |
.NET MAUI Community Toolkit Converter を作成する
.NET MAUI Community Toolkit では、.NET MAUIによって提供される IValueConverter インターフェイスの型セーフな実装が提供されるため、開発者はより簡潔でタイプ セーフなコンバーターを簡単に記述できます。 ツールキットには、次のオプションが用意されています
双方向コンバーター
BaseConverter クラスを使用すると、開発者は受信値の型と、双方向バインディングをサポートするIValueConverter実装の送信値の型を定義できます。 次の例は、bool値をColors.Green場合はtrueに変換し、Colors.Red場合はfalseするコンバーターを作成する方法を示しています。
public class BoolToColorConverter : BaseConverter<bool, Color>
{
public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange;
public override bool DefaultConvertBackReturnValue { get; set; } = false;
public override string ConvertFrom(bool value, CultureInfo? culture)
{
return value ? Colors.Green : Colors.Red;
}
public override int ConvertBackTo(Color value, CultureInfo? culture)
{
return value == Colors.Green;
}
}
DefaultConvertReturnValue は基本実装で使用され、ConvertFrom メソッド内で例外がスローされると返されます。
DefaultConvertBackReturnValue はベース実装で使用され、ConvertBackTo メソッド内で例外がスローされたときに返されます。
Warning
コンバーターは、受信値または送信値が想定される型でない場合、 ArgumentException をスローします。
CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters を false に設定することで、例外のスロー処理を無効にできます。
一方向コンバーター
BaseConverterOneWay クラスを使用すると、開発者は、受信値の型と、一方向のバインドをサポートするIValueConverter実装の送信値の型を定義できます。 次の例は、bool値をColors.Green場合はtrueに変換し、Colors.Red場合はfalseするコンバーターを作成する方法を示しています。
public class BoolToColorConverter : BaseConverterOneWay<bool, Color>
{
public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange
public override string ConvertFrom(bool value, CultureInfo? culture)
{
return value ? Colors.Green : Colors.Red;
}
}
DefaultConvertReturnValue は基本実装で使用され、ConvertFrom メソッド内で例外がスローされた場合は返されます。
Warning
コンバーターは、入力値または出力値のいずれかが期待される型でない場合、ArgumentException をスローします。
CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters を false に設定することで、例外がスローされることを無効にできます。
コンバーターは、双方向バインディングで使用した場合、NotSupportedException をスローします。
.NET MAUI Community Toolkit