Seleção de itens do DatePicker no iOS

Esta interface do usuário do aplicativo multiplataforma .NET (.NET MAUI) controles específicos da plataforma iOS quando a seleção de itens ocorre em um DatePicker, permitindo que você especifique que a seleção de item ocorre ao navegar por itens no controle ou apenas quando o botão Concluído é pressionado. Ele é consumido em XAML definindo a propriedade anexada DatePicker.UpdateMode como um valor da UpdateMode enumeração:

<ContentPage ...
             xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls">
    <StackLayout>
       <DatePicker MinimumDate="01/01/2020"
                   MaximumDate="12/31/2020"
                   ios:DatePicker.UpdateMode="WhenFinished" />
       ...
    </StackLayout>
</ContentPage>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

datePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);

O DatePicker.On<iOS> método especifica que essa plataforma específica só será executada no iOS. O DatePicker.SetUpdateMode método, no Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific namespace, é usado para controlar quando a seleção de item ocorre, com a UpdateMode enumeração fornecendo dois valores possíveis:

  • Immediately – a seleção de itens ocorre à medida que o usuário navega pelos itens no DatePicker. Esse é o comportamento padrão.
  • WhenFinished – a seleção do item só ocorre depois que o usuário pressiona o botão Concluído no DatePicker.

Além disso, o método pode ser usado para alternar os valores de enumeração chamando o método, que retorna o SetUpdateModeUpdateMode atual UpdateMode:

switch (datePicker.On<iOS>().UpdateMode())
{
    case UpdateMode.Immediately:
        datePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);
        break;
    case UpdateMode.WhenFinished:
        datePicker.On<iOS>().SetUpdateMode(UpdateMode.Immediately);
        break;
}

O resultado é que um especificado UpdateMode é aplicado ao , que controla quando ocorre a seleção de DatePickeritem:

Screenshot of DatePicker update modes.