以我的Silverlight 4 MVVM应用,还能在运行时间期间切换语言:的Silverlight ValidatesOnException默认消息本地化
public void SetLanguage(string language)
{
var culture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
// ...
}
对于输入,我只是在转换问题的情况下增加了“ValidatesOnException =真”并且它的工作。但默认的异常消息是在我的操作系统的文化中,而不是手动选择的。
在这个线程exception message localization这个想法是改变CurrentCulture和CurrentUICulture,我做了。所以我有点卡住了。
我该怎么办?
谢谢:)
编辑:我试图以验证用户输入使用自定义转换器在convertback方法的自定义异常。问题是,convertback方法中的异常不会被validatesOnException捕获,它会中断应用程序。
编辑2:澄清 - >如果我有一个十进制属性绑定到文本框,并且我在此文本框中输入“blabla”,我想看到有问题,并且我希望消息处于运行时区域设置,而不是OS区域设置。 我不能在我的属性setter中引发异常,因为我永远不会到达那里,默认转换器在此之前引发它自己的异常。
我希望它很清楚。如果我可以帮助你,请不要犹豫:)
我不想在构造函数中设置语言,我希望能够在运行时更改它。这不适用,this.language是私人设置。 –
仅仅因为它在构造函数中并不意味着它在运行时不能运行。使用一个参数化的构造函数,并包含类似于您使用的SetLanguage方法的逻辑 –