次の方法で共有


iOS での DatePicker 項目の選択

この .NET Multi-Platform App UI (.NET MAUI) iOS プラットフォーム固有のコントロールは、DatePicker で項目の選択が発生するタイミングを制御します。コントロール内で項目を参照するとき、または [完了] ボタンが押された後にのみ項目の選択を行うことを指定できます。 DatePicker.UpdateMode 添付プロパティを UpdateMode 列挙型の値に設定することで、XAML で使用されます。

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

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

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

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

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

  • Immediately: ユーザーが DatePicker 内の項目を参照すると、項目の選択が行われます。 これが既定の動作です。
  • 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;
}

結果として、指定した UpdateModeDatePicker に適用され、項目の選択が行われるタイミングが制御されます。

Screenshot of DatePicker update modes.