Freigeben über


BoolToObjectConverter

BoolToObjectConverter ist ein Konverter, mit dem Benutzer eine bool-Wertbindung in ein bestimmtes Objekt konvertieren können. Wenn Sie sowohl ein TrueObject als auch ein FalseObject im Konverter bereitstellen, wird das entsprechende Objekt abhängig vom Wert der Bindung zurückgegeben.

Die Methode Convert gibt TrueObject zurück, wenn das angegebene value true ist, ansonsten gibt sie FalseObject zurück.

Die Methode ConvertBack gibt true zurück, wenn das angegebene value gleich TrueObject ist, ansonsten gibt sie false zurück.

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

In den folgenden Beispielen wird gezeigt, wie Sie mithilfe der BoolToObjectConverter den Hintergrund eines Entry -Steuerelements basierend auf dem spezifischen Wert einer gebundenen Eigenschaft ändern, IsValid true oder falseist.

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 BoolToObjectConverter

BoolToObjectConverter 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.BoolToObjectConverterPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <SolidColorBrush x:Key="TrueColorBrush">Green</SolidColorBrush>
            <SolidColorBrush x:Key="FalseColorBrush">Red</SolidColorBrush>

            <toolkit:BoolToObjectConverter x:Key="IsValidConverter" 
                TrueObject="{StaticResource TrueColorBrush}" 
                FalseObject="{StaticResource FalseColorBrush}"/>
        </ResourceDictionary>
    </ContentPage.Resources>

    <Entry Background="{Binding IsValid, Converter={StaticResource IsValidConverter}}" />

</ContentPage>

C#

BoolToObjectConverter kann wie folgt in C# verwendet werden:

class BoolToObjectConverterPage : ContentPage
{
    public BoolToObjectConverterPage()
    {
        var entry = new Entry();

        label.SetBinding(
            Label.IsVisibleProperty,
            new Binding(
                static (ViewModel vm) => vm.IsValid,
                converter: new BoolToObjectConverter
                {
                    TrueObject = new SolidColorBrush(Colors.Green),
                    FalseObject = new SolidColorBrush(Colors.Red)
                }));

        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 BoolToObjectConverterPage : ContentPage
{
    public BoolToObjectConverterPage()
    {
        Content = new Entry()
            .Bind(
                Label.BackgroundProperty,
                static (ViewModel vm) => vm.IsValid,
                converter: new BoolToObjectConverter
                {
                    TrueObject = new SolidColorBrush(Colors.Green),
                    FalseObject = new SolidColorBrush(Colors.Red)
                });
    }
}

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 BoolToObjectConverter über das GitHub-Repository für das .NET MAUI Community Toolkit.