如何将日期选择器默认为"选择日期"?

时间:2016-02-10 21:51:09

标签: c# wpf date data-binding datepicker

我有几个DatePickers,其中许多默认情况下没有日期。当存在给定DatePicker的数据时,我希望它显示日期,但如果没有,我希望它显示默认值"选择日期"当我的数据在该日期为空时发短信。

在为DatePicker创建DataBinding之前,它在我的所有DatePickers上都显示了这个文本,但在我创建了一个DataBinding之后,它变成了一个DateTime值,它不能是null值。是否有一个不同的数据类型接受DatePicker可以接受的空值,或者有更好的方法让DatePicker显示"选择一个日期?"

我对编程有点新意,所以如果我没有说清楚或包含一些必要的信息,请原谅。我可以提供所需的一切。请问。

2 个答案:

答案 0 :(得分:6)

DatePicker的{​​{3}}属性属于DateTime?类型,因此它是SelectedDate

如果您在视图模型中有此功能:

public DateTime DateTimeInVm { get; set; }

这在你看来:

<DatePicker SelectedDate="{Binding DateTimeInVm}"></DatePicker>

然后是,输出将是:

nullable

因为正如您所说DateTimestruct所以它不能null并且会被初始化为DateTime.MinValue

但是如果你在视图模型中有这个:

public DateTime? DateTimeInVm { get; set; }

结果将是:

wrongoutput

因此,请尝试将您绑定的属性更改为可为空的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