当tabitem不可见时,绑定(文化)不起作用

时间:2012-06-11 11:02:27

标签: silverlight

在Silverlight中:

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

我已经在构造函数中设置了this.Language ....以确保设置了正确的文化。而且,如上所述,当标签可见时它会起作用。

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

编辑: 我意识到只需切换选项卡时也会出现这种情况。似乎框架中存在重置或未考虑currentCulture或CurrentUIculture的错误。

1 个答案:

答案 0 :(得分:0)

我发现了问题和解决方案。当文本框驻留在ChildWindow中的tabItem上时,它不会继承语言设置。我从程序中打印了一些调试消息,然后设置:

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

TextBox仍然是en-us而不是nb-no。因此设置:

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

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