为WPF DateTimePicker验证设置文化

时间:2013-05-15 12:58:49

标签: c# wpf xaml binding cultureinfo

我在WPF应用程序上使用DateTimePicker。 我想将.Text属性绑定到SelectedDate,所以我使用这样的绑定:

<DatePicker x:Name="DateTimePicker_Date"
              Text="{Binding dDate, Mode=TwoWay,
                     UpdateSourceTrigger=PropertyChanged,
                     TargetNullValue='',
                     ValidatesOnDataErrors=True}"
              TabIndex="3"
              Grid.Column="1" />

我的问题是我使用欧洲文化,所以:DAY / MONTH / YEAR而不是MONTH / DAY / YEAR,所以如果我输入:14/02/2013,我有验证错误!

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

解决了:

Juste添加一个:

this.Language = XmlLanguage.GetLanguage("fr-FR");

在windows的代码隐藏中:)

答案 1 :(得分:0)

非常受欢迎的话题。我一直在寻找答案,我认为我的决定会适合您。 创建窗口时,所有控件均从系统中获取默认区域性。 您更改属性 SelectedDate =“ {Binding MyDate,StringFormat =” .....“}” SelectedDateFormat =“ Short” 也许您会看到所需的某种格式,但是它对于手动编辑输入不起作用。 为此,您需要在类初始化开始时设置区域性

public MyWPFWindow()
    {
        InitializeComponent();        
        /// <summary>
        /// Change ShortDate on Culture for this <see cref="MyWPFWindow"/>
        /// </summary>
        CultureInfo cd = CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name);
        cd.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
        Thread.CurrentThread.CurrentCulture = cd;
    }