Freigeben über


.NET MAUI-Konverter

.NET Multi-platform App UI (.NET MAUI)-Datenbindungen übertragen in der Regel Daten aus einer Quelleigenschaft in eine Zieleigenschaft und in einigen Fällen von der Zieleigenschaft in die Quelleigenschaft. Diese Übertragung ist einfach, wenn die Quell- und Zieleigenschaften denselben Typ aufweisen oder wenn ein Typ über eine implizite Konvertierung in den anderen Typ konvertiert werden kann. Wenn dies nicht der Fall ist, muss eine Typkonvertierung erfolgen.

Weitere Informationen zu Konvertern finden Sie in der .NET MAUI-Dokumentation.

.NET MAUI Community Toolkit-Konverter

Das .NET MAUI Community Toolkit bietet eine Sammlung vordefinierter wiederverwendbarer Konverter, um Entwicklern das Leben zu erleichtern. Hier sind die vom Toolkit bereitgestellten Konverter:

Converter BESCHREIBUNG
BoolToObjectConverter Dies BoolToObjectConverter ist ein Konverter, mit dem Benutzer eine bool Wertbindung in ein bestimmtes Objekt konvertieren können.
ByteArrayToImageSourceConverter Der ByteArrayToImageSourceConverter ist ein Konverter, der es dem Benutzer ermöglicht, einen eingehenden Wert aus einem byte-Array zu konvertieren und einen ImageSource zurückzugeben.
ColorToBlackOrWhiteConverter Der ColorToBlackOrWhiteConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color-Wert in einen monochromen Wert von Colors.Black oder Colors.White konvertieren können.
ColorToByteAlphaConverter Dies ColorToByteAlphaConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color Wert in die Alphakomponente als Wert zwischen 0 und 255 konvertieren können.
ColorToByteBlueConverter Der ColorToByteBlueConverter ist ein unidirektionaler Konverter, mit dem Benutzer ein eingehendes Color in die Blaue Komponente als Wert zwischen 0 und 255 konvertieren können.
ColorToByteGreenConverter Der ColorToByteGreenConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color in die grüne Komponente als Wert zwischen 0 und 255 umwandeln können.
ColorToByteRedConverter Der ColorToByteRedConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color auf die rote Komponente als einen Wert zwischen 0 und 255 umwandeln können.
ColorToCmykStringConverter Der ColorToCmykStringConverter ist ein unidirektionaler Konverter, mit dem Benutzer eine Color-Wertbindung in das CMYK-Äquivalent string konvertieren können.
ColorToCmykaStringConverter ColorToCmykaStringConverter ist ein unidirektionaler Konverter, mit dem Benutzer eine Color-Wertbindung in ihr CMYKA-Äquivalent string konvertieren können.
ColorToColorForTextConverter Der ColorToColorForTextConverter ist ein unidirektionaler Konverter, der es Benutzern ermöglicht, einen eingehenden Color-Wert in einen monochromen Wert von entweder Colors.Black oder Colors.White zu konvertieren, basierend darauf, ob er als dunkel für das menschliche Auge wahrgenommen wird.
ColorToDegreeHueConverter ColorToDegreeHueConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color-Wert in die Farbton-Komponente als Wert zwischen 0 und 360 konvertieren können.
ColorToGrayScaleColorConverter Dieser ColorToGrayScaleColorConverter ist ein unidirektionaler Umwandler, mit dem Benutzer einen eingehenden Color in ein Graustufen-Color konvertieren können.
ColorToHexRgbStringConverter Dieser ColorToHexRgbStringConverter ist ein Konverter, mit dem Benutzer eine Color Wertbindung in die RGB-Hexadezimalentsprechung string konvertieren können.
ColorToHexRgbaStringConverter Dies ColorToHexRgbaStringConverter ist ein Konverter, mit dem Benutzer eine Color Wertbindung in seine RGBA-Hexadezimalentsprechung string konvertieren können.
ColorToHslStringConverter Dieser ColorToHslStringConverter ist ein einseitiger Konverter, der Benutzern ermöglicht, eine Color Wertbindung in ihr HSL-Äquivalent string umzuwandeln.
ColorToHslaStringConverter Der ColorToHslaStringConverter ist ein unidirektionaler Konverter, mit dem Benutzer eine Color-Wertbindung in ihre HSLA-Äquivalente string konvertieren können.
ColorToInverseColorConverter Der ColorToInverseColorConverter ist ein Einweg-Konverter, mit dem Benutzer ein eingehendes Color in sein Inverses konvertieren können.
ColorToPercentBlackKeyConverter Der ColorToPercentBlackKeyConverter ist ein einseitiger Konverter, mit dem Benutzer einen eingehenden Color in die Schlüsselkomponente als Wert zwischen 0 und 1 konvertieren können.
ColorToPercentCyanConverter Der ColorToPercentCyanConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color in die Cyan-Komponente als Wert zwischen 0 und 1 konvertieren können.
ColorToPercentMagentaConverter ColorToPercentMagentaConverter ist ein unidirektionaler Konverter, mit dem Benutzer einen eingehenden Color-Wert in die Magenta-Komponente als Wert zwischen 0 und 1 konvertieren können.
ColorToPercentYellowConverter Dieser ColorToPercentYellowConverter ist ein unidirektionaler Konverter, der es Benutzern ermöglicht, einen eingehenden Color in die gelbe Komponente als Wert zwischen 0 und 1 umzuwandeln.
ColorToRgbStringConverter Dies ColorToRgbStringConverter ist ein Konverter, mit dem Benutzer eine Color Wertbindung in ihr RGB-Äquivalent string konvertieren können.
ColorToRgbaStringConverter Dieser ColorToRgbaStringConverter ist ein unidirektionaler Konverter, mit dem Benutzer eine Color Wertbindung in ihre RGBA-Entsprechung string konvertieren können.
CompareConverter Der CompareConverter ist ein unidirektionaler Konverter, der einen eingehenden Wert, der IComparable implementiert, mit einem angegebenen Wert vergleicht und das Vergleichsergebnis zurückgibt.
DateTimeOffsetConverter Das DateTimeOffsetConverter ist ein Konverter, der es Benutzern ermöglicht, ein DateTimeOffset in ein DateTime zu konvertieren.
DoubleToIntConverter Dies DoubleToIntConverter ist ein Konverter, mit dem Benutzer einen eingehenden double Wert in einen int und umgekehrt konvertieren können. Optional kann der Benutzer einen Multiplikator für die Konvertierung über die Eigenschaft Ratio bereitstellen.
EnumToBoolConverter Dieser EnumToBoolConverter ist ein unidirektionaler Konverter, mit dem Sie ein Enum in ein entsprechendes bool umwandeln können, basierend darauf, ob es einer Gruppe von angegebenen Enumerationswerten entspricht. Es ist nützlich, wenn eine Auflistung von Werten gebunden wird, die einen Enumerationstyp an eine boolesche Steuerelementeigenschaft wie die IsVisible Eigenschaft darstellen.
EnumToIntConverter EnumToIntConverter ist ein Konverter, mit dem Sie einen Standardwert Enum (Erweiterung int) in seinen einfachen int-Wert konvertieren können. Es ist nützlich, wenn man eine Auflistung von Werten, die einen Enumerationstyp mit einer Standardnummerierung darstellen, an ein Steuerelement wie z. B. ein Picker bindet.
ImageResourceConverter ImageResourceConverter ist ein Konverter, der eingebettete Bildressourcen-ID in seine ImageSource konvertiert.
IndexToArrayItemConverter Dies IndexToArrayItemConverter ist ein Konverter, mit dem Benutzer eine int Wertbindung in ein Element in einem Array konvertieren können. Der int Wert, der datengebunden ist, stellt den Indexer dar, der für den Zugriff auf das Array verwendet wird. Das Array wird über den ConverterParameter übergeben.
IntToBoolConverter Dies IntToBoolConverter ist ein Konverter, mit dem Benutzer einen eingehenden int Wert in einen bool und umgekehrt konvertieren können.
InvertedBoolConverter Dieser InvertedBoolConverter ist ein Konverter, der es Benutzern ermöglicht, ein bool in sein Inverses umzuwandeln - true wird zu false und umgekehrt.
IsEqualConverter IsEqualConverter ist ein unidirektionaler Konverter, der einen bool-Wert zurückgibt, der angibt, ob der Bindungswert einem anderen angegebenen Wert entspricht.
IsInRangeConverter Der IsInRangeConverter ist ein unidirektionaler Konverter, der einen eingehenden Wert, der IComparable implementiert, sowie einen Minimal- und Maximalwert annimmt und das Ergebnis zurückgibt, ob der Wert zwischen dem Minimal- und dem Maximalwert liegt.
IsListNotNullOrEmptyConverter Dieser IsListNotNullOrEmptyConverter ist ein unidirektionaler Konverter, der IEnumerable in einen bool-Wert umwandelt.
IsListNullOrEmptyConverter Der IsListNullOrEmptyConverter ist ein unidirektionaler Konverter für IEnumerable, der IEnumerable in einen bool-Wert umwandelt.
IsNotEqualConverter IsNotEqualConverter ist ein unidirektionaler Konverter, der einen bool-Wert zurückgibt, der angibt, ob der Bindungswert einem anderen angegebenen Wert entspricht.
IsNullConverter Dies IsNullConverter ist ein Konverter, mit dem Benutzer eine eingehende Bindung in einen bool Wert konvertieren können. Dieser Wert stellt dar, ob der Wert der eingehenden Bindung null ist.
IsNotNullConverter Dies IsNotNullConverter ist ein Konverter, mit dem Benutzer eine eingehende Bindung in einen bool Wert konvertieren können. Dieser Wert stellt dar, wenn der Wert der eingehenden Bindung nicht NULL ist.
IsStringNotNullOrEmptyConverter IsStringNotNullOrEmptyConverter ist ein unidirektionaler Konverter, der einen bool-Wert zurückgibt, der angibt, ob der Bindungswert nicht null und kein string.Empty ist.
IsStringNotNullOrWhiteSpaceConverter Dieser IsStringNotNullOrWhiteSpaceConverter ist ein unidirektionaler Konverter, der ein bool zurückgibt, das angibt, ob der Bindungswert nicht null ist, nicht string.Empty und nicht nur Leerzeichen enthält.
IsStringNullOrEmptyConverter IsStringNullOrEmptyConverter ist ein unidirektionaler Konverter, der einen bool-Wert zurückgibt, der angibt, ob der Bindungswert null oder string.Empty ist.
IsStringNullOrWhiteSpaceConverter Der IsStringNullOrWhiteSpaceConverter ist ein unidirektionaler Konverter, der ein bool zurückgibt und angibt, ob der Bindungswert null ist, string.Empty oder nur Leerzeichen enthält.
ItemTappedEventArgsConverter Dies ItemTappedEventArgsConverter ist ein Konverter, mit dem Benutzer den Item-Wert aus einem ItemTappedEventArgs Objekt extrahieren können. Es kann anschließend in Kombination mit EventToCommandBehavior verwendet werden.
ListToStringConverter ListToStringConverter ist ein unidirektionaler Konverter, der eine Verkettung der Elemente einer Auflistung mithilfe des angegebenen Trennzeichens zwischen den einzelnen Elementen zurückgibt.
MathExpressionConverter Die MathExpressionConverter ist ein Konverter, mit dem Benutzer verschiedene mathematische Vorgänge ausführen können.
MultiConverter MultiConverter konvertiert einen eingehenden Wert mit allen eingehenden Konvertern in Sequenz.
MultiMathExpressionConverter Dieser MultiMathExpressionConverter ist ein Konverter, mit dem Benutzer verschiedene mathematische Vorgänge mit mehreren Werten durch die Verwendung einer MultiBinding durchführen können.
SelectedItemEventArgsConverter Dies SelectedItemEventArgsConverter ist ein Konverter, mit dem Benutzer den Item-Wert aus einem SelectedItemEventArgs Objekt extrahieren können. Es kann anschließend in Kombination mit EventToCommandBehavior verwendet werden.
StateToBoolConverter Der StateToBoolConverter ist ein unidirektionaler Konverter, der ein boolean-Ergebnis basierend darauf zurückgibt, ob der angegebene Wert eines bestimmten LayoutState ist.
StringToListConverter Der StringToListConverter ist ein unidirektionaler Konverter, der eine Reihe von Teilzeichenfolgen zurückgibt, indem er die Eingabezeichenfolge anhand eines oder mehrerer Trennzeichen aufteilt.
TextCaseConverter TextCaseConverter ist ein unidirektionaler Konverter, mit dem Benutzer die Groß-/Kleinschreibung einer eingehenden string-Typbindung konvertieren können. Die Type-Eigenschaft wird verwendet, um zu definieren, welche Art von Groß-/Kleinschreibung auf die Zeichenfolge angewendet wird.
VariableMultiValueConverter Das VariableMultiValueConverter ist ein Konverter, mit dem Benutzer bool Werte über einen MultiBinding in einen einzelnen bool konvertieren können.

Erstellen eines .NET MAUI Community Toolkit Converters

Das .NET MAUI Community Toolkit bietet typsichere Implementierungen der von .NET MAUI bereitgestellten IValueConverter-Schnittstelle. Dies erleichtert es Entwicklern, präzisere, typsichere Konverter zu schreiben. Das Toolkit bietet die folgenden Optionen:

Bidirektionale Konverter

Die BaseConverter Klasse bietet Entwicklern die Möglichkeit, den Typ des eingehenden Werts und auch den Ausgehenden Werttyp für eine IValueConverter Implementierung zu definieren, die eine bidirektionale Bindung unterstützt. Das folgende Beispiel zeigt, wie Sie einen Konverter erstellen, der einen bool Wert in Colors.Green wenn true und Colors.Red wenn falsekonvertiert.

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;
    }
}

Dies DefaultConvertReturnValue wird von der Basisimplementierung verwendet und zurückgegeben, wenn eine Ausnahme innerhalb der ConvertFrom Methode ausgelöst wird.

Dies DefaultConvertBackReturnValue wird von der Basisimplementierung verwendet und zurückgegeben, wenn eine Ausnahme innerhalb der ConvertBackTo Methode ausgelöst wird.

Warnung

Der Konverter löst ein ArgumentException aus, wenn entweder die eingehenden oder ausgehenden Werte nicht vom erwarteten Typ sind. Das Auslösen von Ausnahmen kann durch Festlegen von CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf falsedeaktiviert werden.

Unidirektionale Konverter

Die BaseConverterOneWay Klasse bietet Entwicklern die Möglichkeit, den Typ des eingehenden Werts und auch den ausgehenden Werttyp für eine IValueConverter Implementierung zu definieren, die eine unidirektionale Bindung unterstützt. Das folgende Beispiel zeigt, wie Sie einen Konverter erstellen, der einen bool Wert in Colors.Green wenn true und Colors.Red wenn falsekonvertiert.

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;
    }
}

Dies DefaultConvertReturnValue wird von der Basisimplementierung verwendet und zurückgegeben, wenn eine Ausnahme innerhalb der ConvertFrom Methode ausgelöst wird.

Warnung

Der Konverter löst ein ArgumentException aus, wenn die eingehenden oder ausgehenden Werte nicht vom erwarteten Typ sind. Das Auslösen von Ausnahmen kann durch Festlegen von CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters auf falsedeaktiviert werden. Der Konverter löst ein NotSupportedException aus, wenn er in einer bidirektionalen Bindung verwendet wird.