2013年02月19日

WPFサンプル:コレクションオブジェクトとのバインディング(2)

   このエントリーをはてなブックマークに追加 Clip to Evernote
WPFサンプル:コレクションオブジェクトとのバインディングでは、本当に基礎の基礎といった感じのサンプルでしたが、
今度は、ObservableCollectionを利用したサンプルです。
ObservableCollectionクラスは、INotifyCollectionChangedを実装しているコレクションクラスですので、
要素が追加、削除された時や、リスト全体が更新されたときなどに、変更通知を行ってくれます。

WPFCollectionBinding1

WPFCollectionBinding2

AddItemボタンを押すと、データをListBoxに直接追加するのではなく、リストオブジェクトにデータを
追加するだけで、ListBoxの表示が更新されます。

まずは、C#でコレクションを保持するクラスの定義を行います。


MyDataオブジェクトを複数保持するクラスで、内部で ObservableCollection を利用しています。
ここでは、単純化するために、MyDataクラスには、INotifyPropertyChangedを実装していません。
MyDataオブジェクトの中身が変更された場合も変更通知を利用したいならば、INotifyPropertyChanged を実装する必要があります。
次に、このSeasonListをバインディングソースとするXAMLを示します。


Add Itemsボタンをクリックしたときの処理を記述します。


DataContextに設定したバインディングソースである SeasonListオブジェクトに要素を追加しています。
要素が追加されると自動的に変更通知が行われ、GUI(バインディングターゲット)が更新されます。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52305448