次の方法で共有


方法: 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 コントロールのバインド