0

我有一个 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}"/>

如果我选择像“02.03.1979”这样的日期,一切都很好。但是,如果我选择“27.12.1979”,则 DatePicker 的字段会出现红色边框。我没有验证这个日期。

为什么有些日期是红色的?

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

4

3 回答 3

0

你的 xml 代码没问题。如果您想对多个 DatePicker 使用相同的 DateTime 格式,请将此代码片段添加到您的启动窗口 - 您可以编辑模式:

Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "dd. MMM. yyyy";  
于 2013-03-18T20:45:55.493 回答
0

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

<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}"/>
于 2013-03-18T21:30:09.893 回答
-1

如果您不特别关注日期值的顺序.. 试试这个

<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"/>
于 2013-03-18T20:46:24.733 回答