0

在 Silverlight 中:

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

我在构造函数中设置了 this.Language .... 以确保设置了正确的文化。而且,如上所述,它在选项卡可见时起作用。

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

编辑:我意识到仅在切换选项卡时也会发生这种行为。框架中似乎存在一个错误,该错误会重置或不考虑 currentCulture 或 CurrentUIculture。

4

1 回答 1

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 框架中的一个错误。

于 2012-06-11T12:31:45.763 回答