我有几个DatePickers,其中许多默认情况下没有日期。当存在给定DatePicker的数据时,我希望它显示日期,但如果没有,我希望它显示默认值"选择日期"当我的数据在该日期为空时发短信。
在为DatePicker创建DataBinding之前,它在我的所有DatePickers上都显示了这个文本,但在我创建了一个DataBinding之后,它变成了一个DateTime值,它不能是null值。是否有一个不同的数据类型接受DatePicker可以接受的空值,或者有更好的方法让DatePicker显示"选择一个日期?"
我对编程有点新意,所以如果我没有说清楚或包含一些必要的信息,请原谅。我可以提供所需的一切。请问。
答案 0 :(得分:6)
DatePicker
的{{3}}属性属于DateTime?
类型,因此它是SelectedDate
。
如果您在视图模型中有此功能:
public DateTime DateTimeInVm { get; set; }
这在你看来:
<DatePicker SelectedDate="{Binding DateTimeInVm}"></DatePicker>
然后是,输出将是:
因为正如您所说DateTime
是struct
所以它不能null
并且会被初始化为DateTime.MinValue
。
但是如果你在视图模型中有这个:
public DateTime? DateTimeInVm { get; set; }
结果将是:
因此,请尝试将您绑定的属性更改为可为空的DateTime
。
答案 1 :(得分:0)
你真的需要绑定你的DatePicker吗?因为你只需给它一个名字,你就可以给它空值(选择日期)或设定日期:
AXML:
<DatePicker Name="MyDatePicker"/>
C#
MyDatePicker.SelectedDate = null; // will show "Select a date"
MyDatePicker.SelectedDate = DateTime.Today; //will show today's date