DatePicker的UpdateMode

时间:2019-06-21 11:18:48

标签: xamarin.forms datepicker xamarin.ios

我想更改更新模式,例如here。这是我的代码:

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

第一部分被标记为错误的this.datePicker.On<iOS>(),它引用了xaml中的一个对象。在其他地方,相同的代码也可以正常工作。不知道这是怎么回事。错误消息是:

  

返回此DatePicker的特定于平台的实例,在该实例上可以调用特定于平台的方法。

     

“ IPlatformElementConfiguration”不包含“ SetUpdateMode”的定义,最佳扩展方法重载“ Picker.SetUpdateMode(IPlatformElementConfiguration,UpdateMode)”需要类型为“ IPlatformElementConfiguration”的接收器。

有什么建议吗?

编辑:

似乎所需的行为(updateMode)仅适用于Picker,而不适用于DatePicker。请参阅herehere。有没有办法为Datepicker启用该功能?怎么样?

2 个答案:

答案 0 :(得分:1)

遗憾的是,UpdateMode无法用于日期选择器。

我发现的解决方法是创建一个自定义日历(我做了)。自定义日历很难创建,但是实现起来很简单(具有基本功能)。 我只有1个月的xamarin经验,所以创建了它。

您可以在此处查看完整的代码:

https://medium.com/@bhavyajoshi2793/custom-calendar-in-xamarin-for-android-ios-windows-578f1136daec?source=friends_link&sk=9b1c97e0021da2e48ec84b5b6d4ff8e4

答案 1 :(得分:1)

在此处使用Xamarin Forms 4.6。在您的自定义渲染器中使用以下代码:

protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
    base.OnElementChanged(e);

    if (e.NewElement != null && Control != null)
    {
        ...
        Element.On<Xamarin.Forms.PlatformConfiguration.iOS>().SetUpdateMode(UpdateMode.WhenFinished);
        ...
    }
}