CompareConverter
Jedná se CompareConverter
o jednosměrný převaděč, který vezme příchozí hodnotu implementující IComparable
, porovná se zadanou hodnotou a vrátí výsledek porovnání. Výsledkem bude výchozí hodnota bool
, pokud nebyly zadány žádné objekty prostřednictvím TrueObject
a/nebo FalseObject
vlastností. Pokud jsou hodnoty přiřazeny k TrueObject
a/nebo FalseObject
vlastnosti, CompareConverter vrátí odpovídající objekt přiřazen.
Poznámka:
Mějte na paměti, že obě TrueObject
hodnoty by FalseObject
měly mít definovanou hodnotu, nebo by neměla být definována ani jedna.
Metoda ConvertBack
není podporována.
BaseConverter – vlastnosti
V základní třídě jsou implementovány následující vlastnosti: public abstract class BaseConverter
Vlastnost | Popis |
---|---|
DefaultConvertReturnValue |
Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
DefaultConvertBackReturnValue |
Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
ICommunityToolkitValueConverter – vlastnosti
Následující vlastnosti jsou implementovány v public interface ICommunityToolkitValueConverter
:
Vlastnost | Type | Popis |
---|---|---|
DefaultConvertReturnValue |
object? |
Výchozí hodnota, která se má vrátit při IValueConverter.Convert(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
DefaultConvertBackReturnValue |
object? |
Výchozí hodnota, která se má vrátit při IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) vyvolání .Exception Tato hodnota se používá, když Je nastavena možnost true CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters . |
Syntaxe
XAML
Zahrnutí oboru názvů XAML
Pokud chcete použít sadu nástrojů v XAML, musíte do stránky nebo zobrazení přidat následující xmlns
položky:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Proto platí následující:
<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>
Bylo by změněno tak, aby zahrnovalo xmlns
následující:
<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>
Použití funkce CompareConverter
V XAML je možné ho CompareConverter
použít následujícím způsobem:
<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#
V CompareConverter
jazyce C# je možné ho použít následujícím způsobem:
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;
}
}
Revize jazyka C#
Náš CommunityToolkit.Maui.Markup
balíček nabízí mnohem stručnější způsob použití tohoto převaděče v jazyce C#.
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
});
}
}
Vlastnosti
Vlastnost | Type | Popis |
---|---|---|
ComparisonOperator | OperatorType |
Typ velikostí, která se má na hodnotu použít string . |
Porovnání hodnot | IComparable |
Hodnota, která se má porovnat. |
FalseObject | object |
Výsledek, který se má vrátit, pokud výsledkem porovnání bude false porovnání. |
TrueObject | object |
Výsledek, který se má vrátit, pokud výsledkem porovnání bude true porovnání. |
TextCaseType
Výčet OperatorType
definuje následující členy:
NotEqual
Smaller
SmallerOrEqual
Equal
Greater
GreaterOrEqual
Příklady
Příklad tohoto převaděče najdete v akci v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód CompareConverter
najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit