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 に答える