Elementauswahl in DatePicker in iOS

Diese plattformspezifischen iOS-Steuerelemente, wenn die Elementauswahl in einem DatePickerElement auftritt, sodass der Benutzer angeben kann, dass die Elementauswahl beim Durchsuchen von Elementen im Steuerelement auftritt, oder nur, wenn die Schaltfläche "Fertig " gedrückt wird. Sie wird in XAML verwendet, indem sie die DatePicker.UpdateMode angefügte Eigenschaft auf einen Wert der UpdateMode Aufzählung festlegt:

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

Alternativ kann sie mit der Fluent-API von C# genutzt werden:

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

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

Die DatePicker.On<iOS>-Methode gibt an, dass dies plattformspezifisch unter iOS ausgeführt wird. Die DatePicker.SetUpdateMode Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace wird verwendet, um zu steuern, wann die Elementauswahl eintritt, wobei die UpdateMode Aufzählung zwei mögliche Werte bereitstellt:

  • Immediately – Die Elementauswahl tritt auf, wenn der Benutzer Elemente im DatePicker-Bereich durchsucht. Dies ist das Standardverhalten in Xamarin.Forms.
  • WhenFinished – Die Elementauswahl tritt nur auf, wenn der Benutzer die Schaltfläche Fertig in DatePicker gedrückt hat.

Darüber hinaus kann die SetUpdateMode Methode zum Umschalten der Aufzählungswerte verwendet werden, indem die UpdateMode Methode aufgerufen wird, welche die aktuelle UpdateMode widergibt:

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

Das Ergebnis ist, dass ein bestimmtes UpdateMode auf das DatePicker angewendet wird, das steuert, wann die Artikelauswahl erfolgt:

Screenshot der DatePicker-Updatemodi