試してみよう: 3 階層のリストと詳細のバインドの作成
トピック「リスト-詳細データ バインドの作成」では、2 階層のリスト-詳細データ バインドの作成方法を説明しました。3 階層のリスト-詳細ビューを作成することもできます。たとえば、曲のコレクションなどで、3 階層のリスト-詳細ビューが使用されることがあります。最初のリスト (ListBox) は、アーティスト名のリストです。次のリスト (2 番目の ListBox) は、選択したアーティストのアルバムのリストです。詳細ビューには、選択したアルバムの名前や選択したアルバム カバーの画像などが含まれます。
ヒント : |
---|
ListBox には、リストと詳細ビューの両方が含まれます。リスト自体はリスト ビューで、リストの各アイテムは詳細ビューです。 |
3 階層のリスト-詳細データ バインドを作成するには
[データ] パネルで、[新しいサンプル データ] をクリックします。[新しいサンプル データ] ダイアログ ボックスの [データ ソース名] ボックスに新しいサンプル データの名前を入力し、[OK] をクリックします。
[データ] パネルで [コレクション] をクリックしてテキストボックスを有効にし、「Artists」と入力します。
[Property1] をクリックしてテキスト ボックスを有効にし、「ArtistName」と入力します。[プロパティの種類の変更] をクリックします。[形式] ドロップダウン リストで、[名前] をクリックします。
[Property2] を右クリックして ["Property2" の削除] をクリックします。
[Artists] の右側で、以下の操作を行います。
プラス記号 の横の矢印をクリックし、表示されたドロップダウン メニューで [コレクション プロパティの追加] をクリックします。
[コレクション] をクリックしてテキストボックスを有効にし、「Albums」と入力します。
[Albums] の右側で、以下の操作を行います。
[シンプル プロパティの追加] をクリックします。[Property1] をクリックしてテキスト ボックスを有効にし、「AlbumName」と入力します。
[プロパティの種類の変更] をクリックし、[最大文字数] を「2」に設定します。
[Albums] の右側で、以下の操作を行います。
[シンプル プロパティの追加] をクリックします。[Property1] をクリックしてテキスト ボックスを有効にし、「AlbumCover」と入力します。
[プロパティの種類の変更] をクリックします。[型] ドロップダウン リストで、[イメージ] をクリックします。
または、[場所] ボックスで [参照] をクリックして、イメージ フォルダーに移動します。
[データ] パネルの上部で [リスト モード] をクリックします。
[データ] パネルからアートボードの左側に [Artists] をドラッグし、[[ListBox] を作成して、その ItemsSource プロパティを Artist にデータ バインドする] というツールヒントが表示されたらドロップします。
[データ] パネルの上部で [詳細モード] をクリックします。
[ツール] パネルで [Grid] をクリックします。アートボードの中央に Grid オブジェクトを描画します。
[データ] パネルから上記で作成した Grid オブジェクトまで [Artists] をドラッグし、[[Grid].d:DataContext を Artists[0] にデータ バインドする] というツールヒントが表示されたらドロップします。
[データ] パネルの上部で [リスト モード] をクリックします。
[データ] パネルから Grid オブジェクトの上まで [Albums] をドラッグし、[[ListBox] を作成して、その ItemsSource プロパティを Albums にデータ バインドする] というツールヒントが表示されたらドロップします。
[データ] パネルの上部で [詳細モード] をクリックします。
CTRL キーを押しながら、[データ] パネルで、[AlbumCover] と [AlbumName] をクリックします。[AlbumCover] と [AlbumName] をアートボードの右側にドラッグし、[詳細ビューの作成] というツールヒントが表示されたらドロップします。
F5 キーを押してプロジェクトをビルドしてから実行します。
これで、左側にある最初のリストのアイテムをクリックすると、2 番目のリストが更新されるようになります。2 番目のリストのアイテムを選択すると、詳細ビューが更新されます。
関連項目
タスク
Copyright ©2011 by Microsoft Corporation. All rights reserved.