Výběr položky DatePickeru v iOSu

Download Sample Stažení ukázky

Tento ovládací prvek specifický pro platformu iOS řídí, když dojde k výběru položky v objektu DatePicker, což uživateli umožňuje určit výběr položky při procházení položek v ovládacím prvku nebo pouze po stisknutí tlačítka Hotovo . Využívá se v XAML nastavením DatePicker.UpdateMode připojené vlastnosti na hodnotu výčtu 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>

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:

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

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

Metoda DatePicker.On<iOS> určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda DatePicker.SetUpdateMode v Xamarin.Forms.PlatformConfiguration.iOSSpecific oboru názvů slouží k řízení, kdy dojde k výběru položky, s výčtem UpdateMode poskytující dvě možné hodnoty:

  • Immediately – výběr položky nastane, když uživatel prochází položky v souboru DatePicker. Toto je výchozí chování v Xamarin.Forms.
  • WhenFinished – výběr položky nastane pouze tehdy, když uživatel stiskne tlačítko Hotovo na kartě DatePicker.

Kromě toho lze metodu SetUpdateMode použít k přepnutí hodnot výčtu voláním UpdateMode metody, která vrací aktuální 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;
}

Výsledkem je, že se zadaný UpdateMode parametr použije na DatePicker, který řídí, když dojde k výběru položky:

Screenshot of DatePicker update modes