在xamarin.forms-Android中,日期选择器不会触发默认日期选择
本文关键字:日期 选择 默认 选择器 xamarin forms-Android | 更新日期: 2023-09-27 18:29:08
在xamarin中使用DatePicker时。表单我遇到了一个困难,无法知道用户是真的选择了默认日期,还是日期选择器只显示我给定的默认日期。由于只有在日期选择器字段发生更改时才会触发DateSelector事件,因此只有当用户真的选择日期时,我才希望从日期选择器获取日期。
我怎样才能做到这一点??如果问题没有得到适当的介绍,请发表评论。。
Xamarin.Forms DatePicker.Date属性可以设置为特定日期,也可以单独设置,并将填充当前日期。
DatePicker中没有属性来确定用户是否选择日期。
为了跟踪用户是否选择日期,您必须在DateSelected事件处理程序中自己跟踪,方法是设置一些其他变量,然后您可以稍后查询以确定这是否是用户选择的日期。例如:-
objDatePicker.DateSelected+=((o2,e2)=>
{
blnIsUserSelectedANewDateThanDefault = true;
});
请注意,但是,如果用户调出DatePicker,并选择所示的相同日期,则这将不会触发DateSelected事件处理程序,因为值没有更改。
更新1:-
无法挂接取消按钮单击,该按钮使用Xamarin.FormsDatePicker控件(v1.23x)显示。
但是,您可以创建自定义渲染器,以实现您想要执行的操作。
如果您沿着这条路线前进,您可以勾入Cancel按钮单击,该按钮显示在AndroidDatePickerDialog上。
在自定义渲染器中检测到该事件后,您可以设置一个标志或引发一个事件以指示用户取消了日期选择。
以下是我迄今为止的发现:
安卓系统:
SelectedDateChanged=仅当日期实际发生更改时才触发。完成后开火并取消
SelectedDate=在完成和取消时设置属性unfocused=完成后开火并取消
iOS:
selecteddatechanged=无论完成和取消,每次更改日期时都会触发
SelectedDate=在完成和取消时设置属性unfocused=在完成并取消时激发对我来说,这使得控件在我的项目中几乎无法使用。我应该如何确定用户是点击完成还是只是点击后台取消操作?