「サーバー側のフィルタ処理|document=WordDocuments\C1DataStudio-WPF.docx;topic=Server-Side Filtering」の例で紹介したように、C1DataSource はマスター/詳細連結をサポートしています。大規模なデータセットでは、サーバー側のフィルタ処理が最適なソリューションですが、規模の小さなデータセットでは、クライアント側のフィルタ処理も同様に効率的です。次のシナリオでは、前の例|document=WordDocuments\C1DataStudio-WPF.docx;topic=Server-Side Filteringで使用したコンボボックスではなく、グリッドを使用してクライアント側のマスター/詳細連結を実行し、カテゴリを選択します。
マスター/詳細連結を実装するには、次の手順に従います。
ItemsSource="{Binding ElementName=c1DataSource1, Path=Categories}"
または、XAML で直接入力できます。
ItemsSource="{Binding ElementName=c1DataSource1, Path=Categories/Products}"
連結で "/" を使用した Path=Categories/Products のような形式の Path パラメータを指定すると、現在選択されているカテゴリに属する製品がグリッドに自動的に表示されます。これを単一のマシンで実行した場合、マスターグリッドで新しいカテゴリを選択してから関連する製品が詳細グリッドに表示されるまでに、目立った遅延は見られないでしょう。バックグラウンドでは、C1DataSource は Entity Framework の "暗黙の遅延ロード" 機能を利用しており、製品は新しいカテゴリが選択されたときにのみ収集されます。多くのシナリオでは、これでまったく問題ありません。ただし、このセクションの冒頭で、特に規模の小さなデータセットのマスター/詳細関係について言及しました。その場合は、フォームをロードするときにすべてのカテゴリのすべての製品をフェッチした方がよく、これで、単一のマシンでもネットワークにアクセスする場合でも瞬時に表示が行われます。それには、ViewSourceCollection エディタを開き、Categories ビューソースの Include プロパティに「Products」と入力します。