WPF DatePicker美国和英国日期格式问题

本文关键字:日期 格式 问题 英国 DatePicker 美国 WPF | 更新日期: 2023-09-27 17:58:28

我在数据网格中有一个DatePicker,用户可以在其中选择类似的日期

"07/04/2014",以dd/MM/yyyy为单位,但是,当保存到后端时,它会像2014-07-04 00:00:00.000一样出现在数据库中。(美国也是如此)

我认为这导致了我的问题,当用户选择的日期超过第12天时,DatePicker将无效,用户将无法保存。

因此,例如,如果用户选择2014年4月13日,则日期选择器将失效,因为正确地认为格式为MM/dd/yyyy格式(我相信)

我该如何解决这个问题?我是将模型中的DateTime属性转换为UK格式,还是需要将日期选择器的格式设置为其他格式?

这是XAML

                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <DatePicker Text="{Binding From,   UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{x:Static System:DateTime.Now}"></DatePicker>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate> 

以及模型中的属性

   public System.DateTime From
    {
        get
        {
            return m_From;
        }
        set
        {
           m_From = value;
           PropertyChanged(this, new PropertyChangedEventArgs(From));
        }
    }

任何帮助都是好的。

感谢

WPF DatePicker美国和英国日期格式问题

@GerogeHowarth在这里帮助了我,

我意识到CellTemplate

<DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <DatePicker Text="{Binding From,   UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
                </DataTemplate>

正在将字符串传回模型,我本应将日期传回

<DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <DatePicker SelectedDate="{Binding From,   UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
                </DataTemplate>

这似乎解决了问题。

感谢