在xamarin.Forms中使用DatePicker时,我遇到了很难知道用户是否实际选择了默认日期或者datepicker只是显示了我给出的默认日期。由于只有在datepicker字段中有更改时才触发 datepicker 的 DateSelected 事件,因此我希望仅在用户实际选择日期时才从datepicker获取日期。
我怎样才能实现?如果问题没有得到适当的简要介绍,请发表评论..
答案 0 :(得分:0)
Xamarin.Forms DatePicker.Date 属性可以设置为特定日期,也可以单独保留,并填充当前日期。
在 DatePicker 中公开无属性,以确定用户是否选择日期。
为了跟踪用户是否选择了某个日期,您必须自己在 DateSelected eventhandler 中进行跟踪,方法是设置一些您可以查询的其他变量稍后确定这是否是用户选择的日期。例如: -
objDatePicker.DateSelected+=((o2,e2)=>
{
blnIsUserSelectedANewDateThanDefault = true;
});
注意 - 但是,如果用户调出 DatePicker ,并选择相同日期,则不会触发< strong> DateSelected eventhandler 但是,因为值不已更改。
更新1: -
无法连接使用 Xamarin.Forms DatePicker 控件(v1.2.3x)显示的取消按钮点击。
但是,您可以创建一个自定义渲染器来实现您想要做的事情。
如果你沿着这条路走下去,你就可以进入 Android DatePickerDialog 上公开的取消按钮点击所示。
在自定义渲染器中检测到该事件后,您可以设置标记或引发事件以指示用户取消了日期选择。
答案 1 :(得分:0)
到目前为止,我的调查结果如下:
<强>机器人:强>
SelectedDateChanged =仅在日期实际更改时触发。火灾完成并取消
SelectedDate =设置完成和取消的属性 unfocused =在完成时取消并取消
<强>的iOS:强>
selecteddatechanged =每次更改日期时都会触发,无论是否完成并取消
SelectedDate =设置完成和取消的属性 unfocused =火灾完成并取消 对我而言,这使得控件在我的项目中几乎无法使用。如何判断用户是否完成或只是单击背景取消操作?