ObservableCollectionの項目を変更してもListViewが更新されない2015年02月03日 14:01

ListViewには、ObservableCollectionをバインド。Collectionの変更が、ListViewの表示に反映するようにListではなく、ObservableCollectionを選択。ところが、Collectionの項目の値を変更しても、ListViewの表示が更新されない。

ObservableCollectionに追加直後

時刻の項目に着目。ボタンを押すと、最新の値に更新する。
「イベントテスト」は、デバッグ用のダミーの項目。初期値は項目数を表示。

ObservableCollectionから削除して再追加

値は変わらず。デバッガのウォッチリストで見てみると、Collectionの項目の値の更新は成功している。表示への連携が行われていない。

一方、「イベントテスト」の項目は、いったん削除(Remove)の上、内容を「Deleted.」に変更して再追加(Add)。こちらは、更新されている。

ObservableCollectionのマニュアルには、「項目が追加、削除されたとき、またはリスト全体が更新されたとき」に通知する、とあるが、項目の値が変更されたとき、は含まれない様子。

マニュアルの「解説」の「メモ」欄に、INotifyPropertyChangedインタフェースの実装が示唆されているので試みる。ObservableCollectionを構成する項目のクラスに実装する。

ObservableCollectionに追加直後 その2

再び、時刻の項目に着目。

ObservableCollectionを削除して再追加 その2

値は無事、更新される。
イベントの発生条件が、もう少しわかりやすく記述されているとよかった。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://c5d5e5.asablo.jp/blog/2015/02/03/7563864/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。