Share via


方法: WPF アプリケーションでルックアップ テーブルを作成する

[データ ソース] ウィンドウ内の親テーブルまたは親オブジェクトのメイン ノードを、関連する子テーブルの列またはプロパティにバインドされたコントロールにドラッグすると、ルックアップ テーブルを作成できます。 ルックアップ テーブル (検索バインドと呼ばれることもあります) とは、あるテーブルの外部キー フィールドの値に基づいて別のデータ テーブルの情報を表示するコントロールを表します。

たとえば、販売データベースの Orders テーブルであれば、次のように使用されます。 Orders テーブルの各レコードには、注文した顧客を表す CustomerID が含まれます。 CustomerID は、Customers テーブルの顧客レコードを指す外部キーです。 Orders テーブルの注文の一覧を表示する場合に、CustomerID ではなく、実際の顧客名を表示できます。 顧客名は Customers テーブルに格納されているため、顧客名を表示するにはルックアップ テーブルを作成する必要があります。 ルックアップ テーブルでは、Orders レコードの CustomerID の値を使用してリレーションシップをたどり、わかりやすい顧客名を返します。

ルックアップ テーブルを作成するには

  1. プロジェクトに、関連データを持つ次のいずれかの種類のデータ ソースを追加します。

    注意

    ルックアップ テーブルを作成するには、関連する 2 つのテーブルまたはオブジェクトがプロジェクトのデータ ソースとして存在している必要があります。

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

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

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

  4. [データ ソース] ウィンドウで、親テーブルまたは親オブジェクトと関連する子テーブルまたは子オブジェクトが表示されるまでノードを展開します。

    注意

    関連する子テーブルまたは子オブジェクトは、親テーブルまたは親オブジェクトの下に展開可能な子ノードとして表示されるノードです。

  5. 子ノードのドロップダウン メニューをクリックし、[詳細] を選択します。

  6. 子ノードを展開します。

  7. 子ノードの下で、子と親のデータを関連付けている項目のドロップダウン メニューをクリックします (上の例の場合、これは [CustomerID] ノードになります)。 検索バインドをサポートする次のいずれかの種類のコントロールを選択します。

  8. [データ ソース] ウィンドウから、WPF デザイナー内のコンテナーに子ノードをドラッグします (上の例の場合、子ノードは [Orders] ノードです)。

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

  9. [データ ソース] ウィンドウから、前の手順で作成した検索バインド コントロールに親ノードをドラッグします (上の例の場合、親ノードは [Customers] ノードです)。

    Visual Studio は、コントロールのいくつかのプロパティを設定して検索バインドを構成します。 Visual Studio によって変更されるプロパティを次の表に示します。 必要に応じて、これらのプロパティを XAML または [プロパティ] ウィンドウで変更できます。

    プロパティ

    設定の説明

    ItemsSource

    このプロパティは、コントロールに表示するデータの取得に使用するコレクションまたはバインドを指定します。 このプロパティは、Visual Studio によって、コントロールにドラッグした親データの CollectionViewSource に設定されます。

    DisplayMemberPath

    このプロパティは、コントロールに表示するデータ項目のパスを指定します。 このプロパティは、Visual Studio によって、親データ内で主キーの後にあり、文字列データ型を含んでいる最初の列またはプロパティに設定されます。

    親データの別の列またはプロパティを表示する場合は、このプロパティを別のプロパティのパスに変更します。

    SelectedValue

    このプロパティは、Visual Studio によって、デザイナーにドラッグした子データの列またはプロパティにバインドされます。 この列またはプロパティが、親データの外部キーになります。

    SelectedValuePath

    このプロパティは、Visual Studio によって、親データの外部キーである子データの列またはプロパティのパスに設定されます。

参照

処理手順

方法: Visual Studio でデータに WPF コントロールをバインドする

方法: WPF アプリケーションで関連データを表示する

チュートリアル: WPF アプリケーションでの関連データの表示

概念

Visual Studio でのデータへの WPF コントロールのバインド