2011-01-10 11 views
0

私は、デバイスの状態を示すユーザーコントロールに実装された観測可能なコレクションを持っています。コレクションの変更に基づいて、ユーザーコントロールはアニメーションをトリガーします(collectionchangedイベントにサブスクライブします)。観測可能なコレクションは依存関係プロパティとして実装されています。アプリケーションでは、Iデータは一方向のデータバインディングを使用してデバイス状態をユーザーコントロールobservableCollectionにバインドします。アプリケーションに新しい状態が追加されると、ユーザーコントロール内のObservableCollectionが更新されていることがわかります。ただし、CollectionChangedイベントは発生しませんでしたので、アニメーションはありません。なぜ誰がこのように考えているのですか?WPF - データバインディングObservableCollection CollectionChangedイベント?

ありがとうございます。

+1

コードは役に立つでしょう。間違いがどこにないのか正確に知るのは難しいです。バインディングを盛り上げる可能性はたくさんあります。 –

+0

ここで素敵な探し方のコードを投稿する方法がわかりません。そこで私はhotfile.comで行ったことのテストプロジェクトをアップロードしました。お役に立てれば。 http://hotfile.com/dl/95853235/ce366be/DataBindingObsCollCollectionChange.zip.html – e0eight

答えて

0

ObservableCollectionがUIスレッド以外のスレッド内で変更されていると、問題が発生します。コレクションを変更するスレッドがUIスレッドであることを確認し(必要に応じてDispatcher.Invokeを使用)、これで問題が解決されるかどうか確認してください。

+0

このステートメントのソースを共有してください。これが本当であれば、ユニットテストはどうでしょうか? –

+0

@MauricioAviles:たとえば、[here](http://geekswithblogs.net/NewThingsILearned/archive/2008/01/16/have-worker-thread-update-observablecollection-that-is-bound-to-a.aspxを参照してください。 ) - 他のリンクもたくさんあります。これには解決策があり、リンクされたページには1つが含まれています。 – Jon

関連する問題