Silverlight ValidatesOnException 默认消息本地化

标签 silverlight c#-4.0 silverlight-4.0 localization

在我的 silverlight 4 MVVM 应用程序中,我可以在运行时切换语言:

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 方法中使用带有自定义异常的自定义转换器,以验证用户的输入。问题,validatesOnException 不会捕获 convertback 方法中的异常,它会破坏应用程序。

编辑2:澄清->如果我有一个绑定(bind)到文本框的小数属性,并且我在这个文本框中输入“blabla”,我想看看有问题,我希望消息在运行时语言环境中并且不是操作系统区域设置。
我不能在我的属性 setter 中引发异常,因为我从来没有到达那里,默认转换器在此之前引发它自己的异常。

我希望这很清楚。如果我可以帮助你帮助我,请不要犹豫:)

最佳答案

也许你一开始并没有改变文化。

我建议您尝试此链接中第一个答案中给出的方法:

Change culture of Silverlight application

关于Silverlight ValidatesOnException 默认消息本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399822/

相关文章:

Silverlight MVVM 绑定(bind)更新以不希望的顺序触发

silverlight 4 treeview 在很多项目时扩展缓慢

c# - WCF (Silverlight) Duplex - 未访问服务器

c# - 匿名委托(delegate)事件监听器会阻止垃圾回收吗?

wpf - 如何将图片保存在 wpf 中的图像控件上?

c#-4.0 - 如何在 C# 中动态生成在 DataGridView 内选中的复选框?

c# - 在互操作(C++ 管理)项目中使用 C# dll(使用 Microsoft.bcl 构建)

c# - 将行为附加到 Silverlight 中的所有文本框

windows-phone-7 - 我该怎么做? (应用内的标题)Windows Phone

silverlight - Silverlight XAML TextBlock 中的当前日期