DateTimeOffsetConverter

DateTimeOffsetConverter ist ein Konverter, mit dem Benutzer ein DateTimeOffset in ein DateTime konvertieren können. Manchmal wird ein DateTime-Wert zusammen mit dem Offset im Back-End gespeichert, damit die Zeitzone gespeichert werden kann, aus der ein DateTime stammt. Steuerelemente wie die Microsoft.Maui.Controls.DatePicker funktionieren nur mit DateTime. Dieser Konverter kann in diesen Szenarien verwendet werden.

BaseConverter-Eigenschaften

Die folgenden Eigenschaften werden in der Basisklasse public abstract class BaseConverterimplementiert:

Eigentum Beschreibung
DefaultConvertReturnValue Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) einen Exceptionauslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options-.ShouldSuppressExceptionsInConverters auf truefestgelegt ist.
DefaultConvertBackReturnValue Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) einen Exceptionauslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options-.ShouldSuppressExceptionsInConverters auf truefestgelegt ist.

ICommunityToolkitValueConverter-Eigenschaften

Die folgenden Eigenschaften werden in der public interface ICommunityToolkitValueConverterimplementiert:

Eigentum Typ Beschreibung
DefaultConvertReturnValue object? Standardwert, der zurückgegeben werden soll, wenn IValueConverter.Convert(object?, Type, object?, CultureInfo?) einen Exceptionauslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options-.ShouldSuppressExceptionsInConverters auf truefestgelegt ist.
DefaultConvertBackReturnValue object? Standardwert, der zurückgegeben werden soll, wenn IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) einen Exceptionauslöst. Dieser Wert wird verwendet, wenn CommunityToolkit.Maui.Options-.ShouldSuppressExceptionsInConverters auf truefestgelegt 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"

Daher das Folgende:

<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 geändert werden, um das xmlns wie folgt 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 DateTimeOffsetConverter

Die DateTimeOffsetConverter 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="MyLittleApp.MainPage">
    <ContentPage.Resources>
         <ResourceDictionary>
             <toolkit:DateTimeOffsetConverter x:Key="DateTimeOffsetConverter" />
         </ResourceDictionary>
    </ContentPage.Resources>

    <VerticalStackLayout>
            <Label Text="The DatePicker below is bound to a Property of type DateTimeOffset."
                   Margin="16"
                   HorizontalOptions="Center"
                   FontAttributes="Bold" />

            <DatePicker Date="{Binding TheDate, Converter={StaticResource DateTimeOffsetConverter}}" 
                   Margin="16"
                   HorizontalOptions="Center" />

            <Label Text="{Binding TheDate}"
                   Margin="16"
                   HorizontalOptions="Center"
                   FontAttributes="Bold" />
        </VerticalStackLayout>
</ContentPage>

C#

Die DateTimeOffsetConverter kann wie folgt in C# verwendet werden:

class DateTimeOffsetConverterPage : ContentPage
{
    public DateTimeOffsetConverterPage()
    {
        var label = new Label();

        label.SetBinding(
            Label.TextProperty,
            new Binding(
                static (ViewModels vm) => vm.MyValue,
                converter: new DateTimeOffsetConverter()));

        Content = label;
    }
}

C#-Markup

Unser CommunityToolkit.Maui.Markup-Paket bietet eine viel präzisere Möglichkeit, diesen Konverter in C# zu verwenden.

using CommunityToolkit.Maui.Markup;

class DateTimeOffsetConverterPage : ContentPage
{
    public DateTimeOffsetConverterPage()
    {
        Content = new Label()
            .Bind(
                Label.TextProperty,
                static (ViewModel vm) => vm.MyValue,
                converter: new DateTimeOffsetConverter());
    }
}

Beispiele

Sie finden ein Beispiel für diesen Konverter in Aktion in der .NET MAUI Community Toolkit Sample Application.

API

Sie finden den Quellcode für DateTimeOffsetConverter im .NET MAUI Community Toolkit GitHub Repository.