.NET Framework WPF アプリケーションで関連データを表示します

Note

データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初期からのレガシ .NET Framework テクノロジです。 これらが特に役立つのは、ユーザーがデータを変更し、変更をデータベースに戻して保持できるようにするアプリケーションです。 データセットは非常に優れたテクノロジであることが証明されていますが、新しい .NET アプリケーションでは Entity Framework Core を使用することをお勧めしています。 Entity Framework には、オブジェクト モデルとして表形式データを操作する、より自然な方法が用意されており、よりシンプルなプログラミング インターフェイスが備わっています。

アプリケーションによっては、親子関係で相互に関連する複数のテーブルまたはエンティティからのデータを操作することが必要な場合があります。 たとえば、Customers テーブルの顧客を表示するグリッドを表示したい場合があります。 ユーザーが特定の顧客を選択すると、関連する Orders テーブルにあるその顧客の注文が別のグリッドに表示されます。

[データ ソース] ウィンドウから WPF デザイナーに項目をドラッグすることで、関連データを表示するデータバインド コントロールを作成できます。

  1. [データ] メニューの [データ ソースの表示] をクリックして [データ ソース] ウィンドウを開きます。

  2. [新しいデータ ソースの追加] をクリックして、データ ソース構成ウィザードの操作を完了します。

  3. WPF デザイナーを開き、 [データ ソース] ウィンドウ内の項目の有効なドロップ ターゲットであるコンテナーがデザイナーに含まれていることを確認します。

    有効なドロップ ターゲットの詳細については、「Visual Studio でデータに WPF コントロールをバインドする」を参照してください。

  4. [データ ソース] ウィンドウで、リレーションシップの親テーブルまたはオブジェクトを表すノードを展開します。 親テーブルまたはオブジェクトは、一対多リレーションシップの "一" 側になります。

  5. 親ノード (または親ノード内の個々の項目) を、 [データ ソース] ウィンドウからデザイナーの有効なドロップ ターゲットにドラッグします。

    Visual Studio により、ドラッグした項目ごとに新しいデータバインド コントロールを作成する XAML が生成されます。 この XAML では、親テーブルまたはオブジェクトの新しい CollectionViewSource もドロップ ターゲットのリソースに追加します。 一部のデータ ソースでは、Visual Studio によって、親テーブルまたはオブジェクトにデータを読み込むコードも生成されます。 詳細については、「Visual Studio でデータに WPF コントロールをバインドする」を参照してください。

  6. [データ ソース] ウィンドウで、関連する子テーブルまたはオブジェクトを見つけます。 関連する子テーブルおよびオブジェクトは、親ノードのデータ リストの下部に展開可能なノードとして表示されます。

  7. 子ノード (または子ノード内の個々の項目) を、 [データ ソース] ウィンドウからデザイナーの有効なドロップ ターゲットにドラッグします。

    Visual Studio により、ドラッグした項目ごとに新しいデータバインド コントロールを作成する XAML が生成されます。 この XAML では、子テーブルまたはオブジェクトの新しい CollectionViewSource もドロップ ターゲットのリソースに追加します。 この新しい CollectionViewSource は、先ほどデザイナーにドラッグした親テーブルまたはオブジェクトのプロパティにバインドされます。 一部のデータ ソースでは、Visual Studio によって、子テーブルまたはオブジェクトにデータを読み込むコードも生成されます。

    次の図は、 [データ ソース] ウィンドウのデータセットにある Customers テーブルの関連する Orders テーブルを示しています。

    Data Sources Window showing relation