C# のコードでデータ バインディング (3)

前回の C# のコードでデータ バインディング (2) では、インデクサーの変更通知について説明しました。
今回は、コレクションのデータ バインディングについてです。

コレクションのデータ バインディングをするには、
まず当然の条件として Binding Source がコレクションであることが必要です。
これがさらに INotifyCollectionChanged インターフェイスを実装していると、
コレクション内のアイテムの増減や変更を通知することができ、永続的な OneWay バインディングができます。
INotifyCollectionChanged インターフェイスを実装していない場合は OneTime バインディングとなります。

.NET Framework には、INotifyCollectionChanged インターフェイスを実装したコレクションとして
ObservableCollection<T> クラスが用意されています。
通常はこの ObservableCollection<T> を使えば十分でしょう。

また、プロパティのときの Binding クラスに相当する機能 (Source と Target をつなぐ役割) は、
たいていは ItemsControl などのコレクションを扱うコントロールに組み込まれています。

次のコードで、ItemsControl と ObservableCollection<T> を使った
データ バインディングの動作を確認できます。

ItemsControl.ItemsSource プロパティに Binding Source を設定するだけです。
ItemsControl.Items プロパティは ItemsSource に設定されたコレクションのビューとして機能するもので、
UI はこの Items プロパティの状態を元に構築されます。
Items プロパティを通して、フィルターやソートなどを設定できます。

 

前回: C# のコードでデータ バインディング (2)
次回: ExpandoObject を使ったデータ バインディング

作成したサンプル
BindingConsole (GitHub)

バージョン情報
C# 6.0
.NET Framework 4.5

参照
データ バインディングの概要

コメント / トラックバック3件 to “C# のコードでデータ バインディング (3)”

  1. ExpandoObject を使ったデータ バインディング | Do Design Space Says:

    […] C# のコードでデータ バインディング (3) 次回: […]

  2. C# のコードでデータ バインディング (2) | Do Design Space Says:

    […] 前回: C# のコードでデータ バインディング (1) 次回: C# のコードでデータ バインディング (3) […]

  3. C# のコードでデータ バインディング (4) | Do Design Space Says:

    […] 前回: C# のコードでデータ バインディング (3) […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。