当选项卡项不可见时,绑定(区域性)不起作用



In Silverlight:

我在选项卡控件中使用绑定时遇到问题。我使用 NO-NB 区域性,这意味着小数点分隔符是 、(逗号)而不是 。(点)如美国-EN。只要选项卡可见,绑定就可以正常工作。如果我选择另一个选项卡,然后将数据保存到数据库(使用 EF),则文本 1,25 将转换为 125.00 并存储在数据库中。

我已经设置了这个。语言。。。。在构造函数中,以确保设置了正确的区域性。而且,如前所述,当选项卡可见时,它可以工作。

其他人遇到过这个问题并有解决方案吗?

编辑:我意识到这种行为也会在切换选项卡时发生。框架中似乎有一个错误,该错误重置或未考虑当前文化或当前UI文化。

我找到了问题和解决方案。当文本框驻留在子窗口的选项卡项上时,它不会继承语言设置。我从程序中打印了一些调试消息,并在设置后:

this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.Name); // nb-no

在 ChildWindow 构造函数中,并设置:

tabItem.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.Name); // nb-no

文本框仍然是en-us,而不是nb-no。因此设置:

textBox.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.Name);

像魅力一样工作。我认为这是Silverlight框架中的一个错误。

最新更新