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

时间:2014-04-16 06:28:10

标签: c# wpf xaml date datepicker

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

" 07/04/2014"这是在dd / MM / yyyy,但是,当保存到后端时,它会出现在数据库中,如2014-07-04 00:00:00.000。 (所以在美国)

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

因此,例如,如果用户选择13/04/2014,则datepicker变为无效,因为正确认为格式为MM / dd / yyyy格式(我相信)

我如何解决这个问题?将模型中的DateTime属性转换为UK格式,还是需要将datepicker的格式设置为不同的格式?

这是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));
        }
    }

任何帮助都会很好。

由于

1 个答案:

答案 0 :(得分:1)

@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>

这似乎解决了这个问题。

由于