C# WPF中的日期选择器显示01.01.0001而不是今天

C# WPF中的日期选择器显示01.01.0001而不是今天,c#,wpf,datepicker,wpf-controls,C#,Wpf,Datepicker,Wpf Controls,我试图在我的日期选择器中设置今天的日期: <DatePicker Height="25" SelectedDate="{x:Static sys:DateTime.Now}" Grid.Row="10" HorizontalAlignment="Left" Margin="10 0 0 0" Name="BornDate" VerticalAlignment="Top" Width="115" Text = "{Binding UserBornDate, Mode = OneWay}" D

我试图在我的日期选择器中设置今天的日期:

<DatePicker Height="25" SelectedDate="{x:Static sys:DateTime.Now}" Grid.Row="10" HorizontalAlignment="Left" Margin="10 0 0 0" Name="BornDate" VerticalAlignment="Top" Width="115" Text = "{Binding UserBornDate, Mode = OneWay}" DisplayDateStart="2019-01-04"/>


但当我启动我的应用程序时,它一直显示01.01.0001,这可能是因为控件的
文本
属性绑定到属性
UserBornDate

Text = "{Binding UserBornDate, Mode = OneWay}"
DateTime
默认值为
01/01/0001
,因此只需尝试将值设置为
UserBornDate


希望有帮助

我在XAML中的Datepicker上苦苦挣扎了两天,始终将01-01-0001显示为默认日期

我研究了Stackoverflow和其他方面的许多解决方案。我没能找到解决办法。终于在MSDN上找到了答案

我在这里没有给出完整的代码,只是给出了相关的部分

模型(GRNHeader.cs) 可为空的日期时间grnDate{get;set;}

视图模型

        selectedGRN = new GRNHeader();
        selectedGRN.grnDate = DateTime.Today;
XAML

一切正常


最重要的是在模型中将绑定变量声明为可空的
DatePicker
Datetime
不应该有任何区别…使用他的代码示例,我所要做的就是为控件添加xmlns:sys=“clr namespace:System;assembly=mscorlib”,但它起作用了。。。我的日期格式不同,但是…@Kixoka,名称空间当然是真正能够编译问题中的XAML所必需的。在添加名称空间并成功编译它(包括为UserBornDate提供绑定源)之后,您会注意到实际上
01/01/0001
将来自绑定,除非您将UserBornDate属性设置为其默认值以外的值,正如Itay在这里指出的那样…@elgonzo,我使用绑定源代码和不使用。。。不管怎样,对我来说仍然有效。。。。它根本没有为我显示01/01/0001。。。维德…@Kixoka,奇怪。。。你的装订可能坏了吗?根据我在调用InitializeComponent()之前还是之后设置DataContext,我得到的是预期的日期,或者根本没有任何绑定。然而,“使用”坏的绑定并不是真正有用的…;-)@Kixoka,尝试将UserBornData设置为nothing(即,让它使用DateTime的默认值)(顺便说一句,我现在也在这里测试它;-)
DatePicker x:Name="GRNDate" Margin="0,5,0,0" SelectedDate="{Binding selectedGRN.grnDate ,Mode=TwoWay, TargetNullValue=''}"