iOS での DatePicker 項目の選択

サンプルのダウンロードサンプルのダウンロード

この iOS プラットフォーム固有のコントロールは、 で項目の選択が行われるときに制御します。これにより、ユーザーはコントロール内の DatePicker項目を参照するときに、または [ 完了 ] ボタンが押された後にのみ項目の選択が行われるよう指定できます。 添付プロパティを 列挙体の値UpdateModeDatePicker.UpdateMode設定することで、XAML で使用されます。

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

または、fluent API を使用して C# から使用することもできます。

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

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

メソッドは DatePicker.On<iOS> 、このプラットフォーム固有のが iOS でのみ実行されるように指定します。 名前空間の Xamarin.Forms.PlatformConfiguration.iOSSpecific メソッドはDatePicker.SetUpdateMode、項目の選択が行われるタイミングを制御するために使用され、列挙では次の UpdateMode 2 つの可能な値が提供されます。

  • Immediately – 項目の選択は、ユーザーが 内の項目を参照すると発生します DatePicker。 これは の既定の Xamarin.Forms動作です。
  • WhenFinished – 項目の選択は、ユーザーが の [完了 ] ボタン DatePickerを押した場合にのみ行われます。

さらに、 メソッドをSetUpdateMode使用して、現在UpdateModeの を返す メソッドを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;
}

結果は、指定した UpdateMode が に適用され、 DatePicker項目の選択がいつ行われるかを制御します。

の DatePicker 更新モードのスクリーンショット