XAMLViewへリストの変更を通知するための機能を持つObservableCollectionですが、以下のようにデータソースがListや配列だと変更が検出できません。今回は、Modelのリストが非ObservavleCollectionの場合、やや制約がありますが変更をViewが検出するための仕組みを紹介したいと思います。前述の検出ができない場合のコード例です。ModelにObservavleCollectionの代わりにListが実装されていたりするケースで変更が検出できません。ObservableCollection<string>(this.model.List);}かなり特定の状況ですが、モデルが他所で作成されていて、画面に表示したいケースでデータがListとかになってるとちょっと扱いに困ります。普通はModel側に更新通知を出すイベントを出してもらうのがよさそうですが、変更できない場合少し考える必要がありそうです。リストの長さの変更を監視して通知を出すそこで、リストの長さを監視して要素数に変更があった場合通知を出すクラスを以下のように作成しました。長いですが以下の通り。}}使い方ですが、先ほどのViewModelクラスを以下のように修正します。CollectionLengthWatcherをメンバーに持たせてコンストラクタで監視する処理を追記します。}}ちなみに、要素数しか検出できないので、同じ要素数で内容が変更されたときは対応できていません。リストの要素数がそんなに多くない場合は、数秒に一回ごとに強制的に更新通知だしてもそんなに問題ないような気がします。(もちろん数万件もリストがあったら(そもそもの設計としても)ダメだと思いますが...動作イメージ動かしてみたところですがそんなに違和感ない動きをしています。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Articleひし形と点の当たり判定を行うWPFで未処理の例外を一括で処理するWPFでボタンにホバーエフェクトをかけるWPFのボタンの角を丸くするWPFのボタンをフラットデザインに変更するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。