iOS での DatePicker 項目の選択
この iOS プラットフォーム固有設定では、DatePicker
で項目の選択が行われるタイミングが制御されます。これにより、ユーザーは、コントロール内の項目を参照するとき、または [完了] ボタンが押された後にのみ、項目を選択することを指定できます。 DatePicker.UpdateMode
添付プロパティを 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
に適用され、項目の選択がいつ行われるかを制御します。