我实际上找到了this,但是就像OP说的那样,它是一个黑客的解决方案,就像选票说不是一个漂亮的解决方案。我的程序有一个窗口。
我有一个有两种可能文化的用户界面,de-DE和en-US,以及一个切换语言的按钮。
当我按下该按钮时,每个文本都会发生变化,只有DatePickers文本框中的文本没有,直到我点击DatePickers按钮,然后它将显示的日期更改为正确的格式(并打开DatePicker弹出窗口)
如何使用该语言显示日期切换?我是否可以使用一些wpf选项来更新显示的日期?
仅绑定它是SelectedDate="{Binding Path=FileDate, Mode=TwoWay}
,到目前为止效果很好。
我尝试在语言切换时执行以下操作,但它不会更改文本:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo((string)getSetting("Language"));
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo((string)getSetting("Language"));
FileDate = FileDate; //This one Notifies about the propertychange, so I hoped it would refresh the text.
答案 0 :(得分:0)
好的,所以我得到了另一个想法,它效果很好,感觉不像是黑客,而且很容易做到:
当切换语言时,除了设置CurrentCulture和CurrentUICulture之外,我去
FileDate = DateTime.Now;
这显然使得DatePicker意识到文化已经发生了变化。
答案 1 :(得分:0)
除了回答squirrelkiller外,我还要提到DatePicker(.net 4.6.1)也不会自动采用CurrentUICulture.DateTimeFormat.FirstDayOfWeek
。必须分别为每个Datepicker实例设置它。我也发布了此here