iOS 上的 DatePicker 项选择

此 .NET Multi-platform App UI (.NET MAUI) iOS 平台特定功能控制在 DatePicker 中何时发生项选择,允许指定在浏览控件中的项时发生项选择,或仅当按下“完成”按钮后才会发生。 它通过在 XAML 中将 DatePicker.UpdateMode 附加属性设置为 UpdateMode 枚举的值来使用:

<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 枚举提供两个可能的值:

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

结果是,指定的 UpdateMode 将应用于 DatePicker,后者控制何时发生项选择。

Screenshot of DatePicker update modes.