在我的Silverlight 4 MVVM应用程序中,我可以在运行时切换语言:
对于输入,我只是添加了"ValidatesOnException=true"以防转换问题,并且它可以完成工作。但默认的异常消息在我的操作系统文化中,而不是手动选择的文化。
在exception message localization线程中,更改CurrentCulture和CurrentUICulture的想法已经实现。所以我有点困惑。
我该怎么办?
谢谢:)
编辑:我尝试使用自定义转换器和自定义异常在convertback方法中,以验证用户的输入。问题是,在convertback方法中引发的异常不会被validatesOnException捕获,它会破坏应用程序。
编辑2:澄清->如果我有一个绑定到文本框的十进制属性,并且我在此文本框中输入"blabla",我希望看到存在问题,并且我希望消息在运行时区域设置而不是操作系统区域设置中显示。 我不能在我的属性setter中引发异常,因为我从来没有到达那里,默认转换器在此之前引发了自己的异常。
我希望这很清楚。如果我能帮你帮助我,请不要犹豫:)
public void SetLanguage(string language)
{
var culture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
// ...
}
对于输入,我只是添加了"ValidatesOnException=true"以防转换问题,并且它可以完成工作。但默认的异常消息在我的操作系统文化中,而不是手动选择的文化。
在exception message localization线程中,更改CurrentCulture和CurrentUICulture的想法已经实现。所以我有点困惑。
我该怎么办?
谢谢:)
编辑:我尝试使用自定义转换器和自定义异常在convertback方法中,以验证用户的输入。问题是,在convertback方法中引发的异常不会被validatesOnException捕获,它会破坏应用程序。
编辑2:澄清->如果我有一个绑定到文本框的十进制属性,并且我在此文本框中输入"blabla",我希望看到存在问题,并且我希望消息在运行时区域设置而不是操作系统区域设置中显示。 我不能在我的属性setter中引发异常,因为我从来没有到达那里,默认转换器在此之前引发了自己的异常。
我希望这很清楚。如果我能帮你帮助我,请不要犹豫:)