CompareConverter
CompareConverter
ist ein unidirektionaler Konverter, der einen eingehenden Wert, der IComparable
implementiert, mit einem angegebenen Wert vergleicht und das Vergleichsergebnis zurückgibt. Das Ergebnis wird standardmäßig auf eine bool
festgelegt, wenn keine Objekte über die Eigenschaften TrueObject
und/oder FalseObject
angegeben wurden. Wenn den Eigenschaften TrueObject
und/oder FalseObject
Werte zugewiesen sind, gibt der CompareConverter das zugeordnete Objekt zurück.
Hinweis
Beachten Sie, dass entweder beideTrueObject
und FalseObject
einen definierten Wert haben sollten oder keine.
Die Methode ConvertBack
wird nicht unterstützt.
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 CompareConverter
CompareConverter
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.CompareConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:CompareConverter
x:Key="CompareConverter"
ComparisonOperator="Smaller"
ComparingValue="50"
TrueObject="LightGreen"
FalseObject="PaleVioletRed" />
</ResourceDictionary>
</ContentPage.Resources>
<Label
Text="The background of this label will be green if the value entered is less than 50, and red otherwise."
BackgroundColor="{Binding MyValue, Converter={StaticResource CompareConverter}" />
</ContentPage>
C#
CompareConverter
kann wie folgt in C# verwendet werden:
class CompareConverterPage : ContentPage
{
public CompareConverterPage()
{
var label = new Label
{
Text = "The background of this label will be green if the value entered is less than 50, and red otherwise."
};
label.SetBinding(
Label.BackgroundColorProperty,
new Binding(
nameof(ViewModel.MyValue),
converter: new CompareConverter
{
ComparisonOperator = OperatorType.Smaller,
ComparingValue = 50,
TrueObject = Colors.LightGreen,
FalseObject = Colors.PaleVioletRed
}));
Content = label;
}
}
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 CompareConverterPage : ContentPage
{
public CompareConverterPage()
{
Content = new Label()
.Text("The background of this label will be green if the value entered is less than 50, and red otherwise.")
.Bind(
Label.BackgroundColorProperty,
static (ViewModel vm) => vm.MyValue,
converter: new CompareConverter
{
ComparisonOperator = OperatorType.Smaller,
ComparingValue = 50,
TrueObject = Colors.LightGreen,
FalseObject = Colors.PaleVioletRed
});
}
}
Eigenschaften
Eigenschaft | Typ | Beschreibung |
---|---|---|
ComparisonOperator | OperatorType |
Der Typ der Groß-/Kleinschreibung, der auf den string -Wert angewendet werden soll. |
ComparingValue | IComparable |
Der Wert, mit dem verglichen werden soll. |
FalseObject | object |
Das Ergebnis, das zurückgegeben werden soll, wenn der Vergleich zu einem false -Vergleich führt. |
TrueObject | object |
Das Ergebnis, das zurückgegeben werden soll, wenn der Vergleich zu einem true -Vergleich führt. |
TextCaseType
Die OperatorType
-Enumeration definiert die folgenden Members:
NotEqual
Smaller
SmallerOrEqual
Equal
Greater
GreaterOrEqual
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 CompareConverter
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit