Xamarin.forms 日期选择器的UpdateMode
我想像这样更改更新模式。这是我的代码:Xamarin.forms 日期选择器的UpdateMode,xamarin.forms,datepicker,xamarin.ios,Xamarin.forms,Datepicker,Xamarin.ios,我想像这样更改更新模式。这是我的代码: this.datePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished); this.datePicker.On().SetUpdateMode(UpdateMode.WhenFinished); 第一部分被标记为错误的this.datePicker.On(),它正在引用xaml中的一个对象。在其他地方,同样的代码工作正常。我不知道这里出了什么问题。错误消息是: 返回此DatePick
this.datePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);
this.datePicker.On().SetUpdateMode(UpdateMode.WhenFinished);
第一部分被标记为错误的this.datePicker.On()
,它正在引用xaml中的一个对象。在其他地方,同样的代码工作正常。我不知道这里出了什么问题。错误消息是:
返回此DatePicker的特定于平台的实例,可以在该实例上调用特定于平台的方法
“IPlatformElementConfiguration”不包含“SetUpdateMode”和最佳扩展方法重载“Picker”的定义。SetUpdateMode(IPlatformElementConfiguration,UpdateMode)”需要“IPlatformElementConfiguration”类型的接收器
有什么建议吗
编辑:
似乎所需的行为(updateMode)仅适用于
Picker
,而不适用于DatePicker
。看到或看到。是否有办法同时为日期选择器启用该功能?如何操作?遗憾的是,日期选择器无法使用UpdateMode
我发现的解决方法是创建一个自定义日历(我做到了)。自定义日历看起来很难创建,但实现起来很简单(基本功能)。
在xamarin只有一个月的经验,我就创造了它
您可以在此处查看完整的代码:
此处使用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);
...
}
}
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(例如NewElement!=null&&Control!=null)
{
...
Element.On().SetUpdateMode(UpdateMode.WhenFinished);
...
}
}
我想原因是simple DatePicker没有此功能,只有Picker有此功能!是的,我发现了。但是有解决办法吗?将选取器
中的某些代码放入自定义呈现程序?在日期选取器中,您基本上希望用户选择一个日期,然后按下要选择的日期的“完成”按钮。是的,只有当按下“完成”按钮时,才会引发日期选择
事件。默认行为是,在每次微小的滚动运动(选择“完成”之前)上都会抛出事件。在做了一些研究之后,我认为datePicker的updateMode目前还不可用。您是说customdatePicker
?不知道这是多少代码,但也许您可以在此处将其添加到您的答案中。已更新。请查看提到的网站。答案的链接不好,不构成真正的答案,因为链接是外部的,可能会更改或删除。只是想对某人有用,因为我也经历了同样的问题,必须创建自定义日历。我不知道您的解决方案。谢谢。有没有其他方法可以显示完整的代码?这是XF 4.6之后的新版本?我不这么认为。不知道是哪个版本。看起来很有趣,但目前我无法测试:-(这真的适用于日期采集器吗?
?你认为我会发布一个我知道不起作用的答案吗?不,但通常人们没有完全阅读/理解这个问题,并根据这个问题写一个答案,这不是我要求的。但我认为你发布这个答案令人难以置信,因为所有其他人都说它不起作用!