这是Set the Default Date of WPF Date Picker to Current Date的可能副本,但我已经尝试了问题中的代码,但它不起作用,希望我遗漏了一些简单的
好的,因为问题陈述,我想在视图加载时显示当前日期,但是,我将SelectedDate属性限制为我的属性,我不认为你可以使用“文本”,因为我的属性绑定到的是DateTime属性。是的,我可以在模型中进行转换,但XAML(我认为)应该可以为我做这个。
好的我知道是什么问题,日期是“01/01/0001”,因为当然,它绑定到我的财产,默认为01/01/0001,所以我想我需要做我的属性中的一些C#代码如果是01/01/0001,请使用DateTime.Now,如果不是,请使用该属性。
XAML
<DatePicker HorizontalAlignment="Left"
DisplayDate="{x:Static System:DateTime.Now}"
SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120"/>
如果大代表认为它是重复的话,很高兴删除它,
我做了什么来解决......
get
{
if (m_AvailableFrom == DateTime.MinValue)
return DateTime.Now;
return m_AvailableFrom;
}
欢呼帮助
答案 0 :(得分:28)
我个人只会将DateTime.Now
分配给ViewModel代码中的AvailableFrom
属性。
如果您想使用XAML,一个选项是使AvailableFrom
属性为DateTime?
(可为空的DateTime)而不是DateTime
。然后默认值为null而不是“01/01/0001”。
然后,在您的XAML中,您可以使用
xmlns:System="clr-namespace:System;assembly=mscorlib"
<DatePicker
HorizontalAlignment="Left"
SelectedDate="{Binding
Path=AvailableFrom,
Mode=TwoWay,
TargetNullValue={x:Static System:DateTime.Now}}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120" />
,只要AvailableFrom
为空,UI就会显示当前日期。
答案 1 :(得分:2)
下面的SelectedDate属性的MSDN链接将其显示为可为空。我认为不是返回DateTime.Now只是返回null如果它没有设置,我怀疑像其他具有可空字段的控件,它只会显示任何内容。
答案 2 :(得分:-3)
<DatePicker HorizontalAlignment="Left"
SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
DisplayDate="{Binding DateTime.Now}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120"/>
*在SelectedDate
之后使用DisplayDate标记是否有用,谢谢!