フィブログ

うさんくさいプログラムの備忘録とか。

WPFでリスト型を画面にBindingできないんだけど

こんにちわ、ふぃぶです。

まだxamlとかやってます。WPFとかやってます。

 

先日ListをBindingで表示しようと思ってやってみたら全然データが

画面にわたってこずハマりました。

 

で、さっそく結論。

データバインディングにコレクションつかうときは特に理由がない限りはObservableCollectionを利用する。 で解決。

 

ふぃぶはList型をViewModelに頑張って設定していましたがそれだけじゃダメっぽかったです。

なんかList型だけだと「変数変更されたわ」って情報(?)が画面に通知されないっぽく変数の値を変更しても画面は特に更新がかからないっぽいです。

 

この「変数変えたから画面更新してよ」っていうやり取りをするのがINotifyCollectionChangedインターフェースってものらしいんですが、ObservableCollection型というやつだとこれがデフォで実装されてるらしいです。

List型+INotifyCollectionChanged=ObservableCollection型。

 

コレクションをバインディングとして使う場合、ObservableCollection型を使うのがベターらしいです。

 

【結論に行きついた参考サイト様】

http://blog.okazuki.jp/entry/2014/10/29/220236

 

カネガネList型と何が違うんだろうと思ってたらこういうことだったぽい。