次の方法で共有


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

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、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テーブルを示しています。

    リレーションシップを示す [データ ソース] ウィンドウ