Compartir vía


Selección de elementos de DatePicker en iOS

Este control específico de la plataforma iOS cuando la selección de elementos se produce en un elemento DatePicker, lo que permite al usuario especificar que la selección de elementos se produce al examinar los elementos del control, o solo una vez que se presiona el botón Listo. Se consume en XAML estableciendo la propiedad asociada DatePicker.UpdateMode en un valor de la enumeración UpdateMode:

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

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

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

El método DatePicker.On<iOS> especifica que esta plataforma específica solo se ejecutará en iOS. El método DatePicker.SetUpdateMode, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.iOSSpecific, se usa para controlar cuándo se produce la selección de elementos, con la enumeración UpdateMode que proporciona dos valores posibles:

  • Immediately: la selección de elementos se produce cuando el usuario examina los elementos en DatePicker. Éste es el comportamiento predeterminado en Xamarin.Forms.
  • WhenFinished: la selección de elementos solo se produce una vez que el usuario ha presionado el botón Listo en DatePicker.

Además, el método SetUpdateMode se puede usar para alternar los valores de enumeración llamando al método UpdateMode, que devuelve el objeto actual 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;
}

El resultado es que se aplica un UpdateMode especificado a DatePicker, que controla cuándo se produce la selección de elementos:

Captura de pantalla de los modos de actualización de DatePicker