2014-03-06 47 views
2

如何使用clture更改viewmodel的Datetime类型属性的日期格式。我正在使用下面的代码来改变文化。如何更改Dateformat

 CultureInfo newCulture = null; 
     newCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
     newCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy"; 
     newCulture.DateTimeFormat.DateSeparator = "/"; 


     if (newCulture != null) 
     { 
      Thread.CurrentThread.CurrentCulture = newCulture; 
      Thread.CurrentThread.CurrentUICulture = newCulture; 
     } 

视图的datetimePicker格式已被更改,但在viewmodel的属性格式不反映。任何帮助,将不胜感激。

以下是物业。

private DateTime _fromDate = DateTime.Now; 
    public DateTime FromDate 
    { 
     get { return _fromDate; } 
     set 
     { 
      _fromDate = value; 
      OnPropertyChanged("FromDate"); 
     } 
    } 
+0

我已经写了你的代码在viewmodel constructer设置文化,它在我身边工作。 – Betty

+0

你使用任何线程或背景工作? –

+0

@ J29:是的,我正在使用backgroundworker。 – user3354206

回答

0

如果您在backgroundworker中检查FromDate的值,这将使用相同的系统格式。

//这里将是你的格式描述,如 “DD/MM/YYYY”

var worker = new BackgroundWorker(); 
     worker.DoWork += (o, ea) => 
     { 
     //and here would be system format 
     }; 
     worker.RunWorkerCompleted += (o, ea) => 
     { 

     }; 

可能的解决方案:你必须改变BackgroundWorker的内部文化。

+0

非常感谢J29。 – user3354206