DateTimeOffsetConverter

Het DateTimeOffsetConverter is een conversieprogramma waarmee gebruikers een DateTimeOffset converteren naar een DateTime. Soms wordt een DateTime waarde opgeslagen met de offset op een back-end, zodat de tijdzone waaruit een DateTime afkomstig is, kan worden opgeslagen. Besturingselementen zoals de Microsoft.Maui.Controls.DatePicker werken alleen met DateTime. Dit conversieprogramma kan in deze scenario's worden gebruikt.

Eigenschappen van BaseConverter

De volgende eigenschappen worden geïmplementeerd in de basisklasse, public abstract class BaseConverter:

Property Description
DefaultConvertReturnValue Standaardwaarde die moet worden geretourneerd wanneer IValueConverter.Convert(object?, Type, object?, CultureInfo?) een Exceptiongenereert. Deze waarde wordt gebruikt wanneer CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters is ingesteld op true.
DefaultConvertBackReturnValue Standaardwaarde die moet worden geretourneerd wanneer IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) een Exceptiongenereert. Deze waarde wordt gebruikt wanneer CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters is ingesteld op true.

ICommunityToolkitValueConverter-eigenschappen

De volgende eigenschappen worden geïmplementeerd in de public interface ICommunityToolkitValueConverter:

Property Type Description
DefaultConvertReturnValue object? Standaardwaarde die moet worden geretourneerd wanneer IValueConverter.Convert(object?, Type, object?, CultureInfo?) een Exceptiongenereert. Deze waarde wordt gebruikt wanneer CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters is ingesteld op true.
DefaultConvertBackReturnValue object? Standaardwaarde die moet worden geretourneerd wanneer IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) een Exceptiongenereert. Deze waarde wordt gebruikt wanneer CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters is ingesteld op true.

Syntax

XAML

Inclusief de XAML-naamruimte

Als u de toolkit in XAML wilt gebruiken, moet de volgende xmlns worden toegevoegd aan uw pagina of weergave:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Daarom volgt het volgende:

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

Zou als volgt worden gewijzigd om de xmlns op te nemen:

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

De DateTimeOffset Converter gebruiken

De DateTimeOffsetConverter kan als volgt worden gebruikt in XAML:

<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#

De DateTimeOffsetConverter kan als volgt worden gebruikt in C#:

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#-markeringen

Ons CommunityToolkit.Maui.Markup pakket biedt een veel beknoptere manier om dit conversieprogramma in C# te gebruiken.

using CommunityToolkit.Maui.Markup;

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

Examples

Je vindt een voorbeeld van dit conversieprogramma in werking in de .NET MAUI Community Toolkit Sample Application.

API

U vindt de broncode voor DateTimeOffsetConverter in de .NET MAUI Community Toolkit GitHub opslagplaats.