C# 日期选择器奇怪验证

C# 日期选择器奇怪验证,c#,wpf,datetime,datepicker,C#,Wpf,Datetime,Datepicker,我有一个日期选择器,通过以下XAML定义: <DatePicker Grid.Row="3" Grid.Column="1" Margin="4" Text="{Binding Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayDateStart="01.01.1900" DisplayDateEnd="{Binding CurrentDate, Mode=OneTime}"/>

我有一个日期选择器,通过以下XAML定义:

<DatePicker Grid.Row="3" Grid.Column="1" Margin="4" 
    Text="{Binding Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    DisplayDateStart="01.01.1900" DisplayDateEnd="{Binding CurrentDate, Mode=OneTime}"/>

如果我选择像“1979年3月2日”这样的日期,一切都很好。但是如果我选择'27.12.1979',日期选择器的字段将得到一个红色边框。我没有确认这个日期

为什么有些枣子是红色的


生日是Datetime类型的属性。Currendate是DateTime类型的属性,返回实际日期。

您的xaml代码正常。如果要对多个日期选择器使用相同的日期时间格式,请将此代码段添加到启动窗口-您可以编辑模式:

Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "dd. MMM. yyyy";  

如果您对日期值的顺序不太在意。。试试这个

<DatePicker Grid.Row="3" Grid.Column="1" Margin="4" 
    Text="{Binding Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    DisplayDateStart="01.01.1900" DisplayDateEnd="{Binding CurrentDate, Mode=OneTime}" Format="Custom" FormatString="MMM dd yyyy"/>

我通过绑定到DisplayDate而不是文本解决了这个问题。代码现在看起来像:

<DatePicker Grid.Row="3" Grid.Column="1" Margin="4" 
DisplayDate="{Binding Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
DisplayDateStart="01.01.1900" DisplayDateEnd="{Binding CurrentDate, Mode=OneTime}"/>


您的日期配置很可能设置为使用美国格式的MM/DD/YYYY,因此12月27日是无效日期。抱歉,我无法帮你更进一步。那么如何将格式设置为德语格式呢?我不必在DatePickeroh nevermind上设置属性format和FormatString,我把它与Xceed.Wpf.Toolkit.DateTimePicker混淆了