2011-07-14 20 views
0

私は数多くのコンボボックスを持つプロジェクトを持っており、すべて正しくバインドされています。 SL5をインストールして以来、あらゆる種類のバインディングの問題や、デバッガが不自由なものになり始めました。問題は、SL4からSL5に切り替えてSL4に戻すと、すべての参照がリセットされないことです。長い話を並べると、これらの問題を解決するためにvs2010を再インストールする必要がありました。今私は開発環境をテストしていますが、VMからバインドするテキストボックスを取得することはできますが、バインドするコンボボックスを取得することはできません。MVVMコンボボックスのバインディングの問題

私が知りたいのは、コンボボックスをバインドするための絶対最小要件は何かです。私のViewModelのプロパティSETは、そのデータを取得しています。私は、ItemTemplate構文を使用してみましたが、何も動作していない、コンボボックスItemSourceセットとDisplayMemberPathセットを持っています。 RaisePropertyChangedが起動されています。これはUIスレッドの問題でしょうか?このコンボボックスと他のコンボボックスとの唯一の違いは、データベースへの呼び出しがあり、データベースへの2回目の呼び出しで使用される値を収集することです。これらの結果は、RaisePropertychangedイベントを発生させるVMのプロパティに渡されますが、バインディングはレンダリングされません。私は、クラスのコンストラクタでエンティティを嘲笑してバインディングが動作しますが、データベースからエンティティを読み込むときには動作しません。

+0

この問題がsl4に存在しなかったことを確認できますか? – cordialgerm

答えて

0

問題が見つかりました。これは他人に役立つかもしれません。メソッドのCompletedイベントでViewModels ObservableCollecionをインスタンス化し、データベースからコレクションをループしてコレクションに追加しました。バインディングは起こっていませんでした。代わりにObservableCollectionのインスタンス化をViewModelsコンストラクタに移動し、Bindingが機能し始めました。 ObservableCollectionの新規作成が、ViewModelsコンストラクタ内になければならず、データを取得するメソッドのCompletedイベントではなくてはならない理由について、やや疑問に思っています。

+0

"m_Observable = new ObservableCollectionを設定すると();" PropertyChangedイベントを発生させる必要があります。 –

関連する問題