チュートリアル: デザイナーでの DesignInstance によるデータへのバインド

このチュートリアルでは、実行時に割り当てられるデータ コンテキストのデザイン時に WPF Designer for Visual Studioを使用してデータ バインディングを作成する方法を説明します。 データ バインディングを作成するには、データ バインディング ビルダーを使用して、特殊なデザイン時データ コンテキストを作成し、DesignInstance をビジネス オブジェクト型に設定します。 DesignInstance はデザイン時プロパティです。

このチュートリアルでは次のタスクを行います。

  • プロジェクトを作成する。

  • Customer クラスのビジネス オブジェクトを作成する。

  • TextBox コントロールを、データ コンテキスト内の Customer クラスのデザイン時インスタンスにデータ バインドする。

タスクを終了すると、実行時にテキスト ボックスがビジネス オブジェクトにバインドされます。 データ バインディングは、WPF デザイナー で設定されます。

注意

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

  • Visual Studio 2010.

プロジェクトの作成

まず、WPF アプリケーション プロジェクトを作成し、デザイン時のプロパティを有効にします。

プロジェクトを作成するには

  1. Visual Basic または Visual C# で、DataBindingDemo という名前の新しい WPF アプリケーション プロジェクトを作成します。 詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。

    WPF デザイナーで MainWindow.xaml が開きます。

  2. デザイン ビュー で、MainWindow の右下隅にあるルート サイズ タグ (ルート サイズ タグ) をクリックし、ルート サイズを自動サイズに設定します。

    XAML ビューで、デザイナーによって d 名前空間の割り当てが追加されます。これにより、DesignHeight、DesignInstance などのデザイン時属性にアクセスできます。

ビジネス オブジェクトの作成

次に、ビジネス オブジェクトを作成します。 ビジネス オブジェクトは、FirstName プロパティおよび LastName プロパティを持つ単純な Customer クラスです。

注意

ビジネス オブジェクト型は、デザイン時のデータ バインディングで使用するために作成可能にする必要はありません。 たとえば、デザイン時に抽象クラスにバインドできます。

ビジネス オブジェクトを作成するには

  1. Customer という名前の新しいクラスをプロジェクトに追加します。 詳細については、「方法 : 新しいプロジェクト項目を追加する」を参照してください。

  2. 自動的に生成されたコードを次のコードで置き換えます。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace DataBindingDemo
    {
        public class Customer
        {   
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }
    }
    

デザイン時のデータ コンテキストの設定

データ バインディングを作成するには、データ バインディング ビルダーを使用して、特殊なデザイン時データ コンテキストを作成し、DesignInstance をビジネス オブジェクト型に設定します。

デザイン時のデータ コンテキストを設定するには

  1. WPF デザイナーで MainWindow.xaml を開きます。

  2. XAML ビューで、MainWindow の開始タグに次の名前空間の割り当てを追加します。 詳細については、「方法 : 名前空間を XAML にインポートする」を参照してください。

    xmlns:local="clr-namespace:DataBindingDemo"
    
  3. Grid の開始タグを次の XAML に置き換えます。

    <Grid d:DataContext="{d:DesignInstance Type=local:Customer}" Name="_grid">
    

    この XAML によって、デザイン時のデータ コンテキストが確立され、Customer クラスがデータ バインディングの作成に使用できるようになります。

  4. ソリューションをビルドします。

データ バインディングの作成

データ バインディング ビルダーを使用することで、Customer ビジネス オブジェクトへのデータ バインディングを作成できます。 次の手順では、TextBox コントロールを Customer オブジェクトの FirstName プロパティにバインドする方法について説明します。

データ バインディングを作成するには

  1. [ツールボックス] から TextBox コントロールを Window にドラッグします。

  2. [プロパティ] ウィンドウで、Text プロパティまでスクロールします。

  3. 左の列の端にある [プロパティ マーカー] (プロパティ マーカー) をクリックします。

    メニューが表示されます。

    ヒント

    行を右クリックしてメニューを表示することもできます。

  4. [データ バインドの適用] をクリックします。

    データ バインディング ビルダーが表示され、[パス] ペインが開きます。

    データ バインド ビルダー

  5. [FirstName] をクリックし、Enter キーを押します。

    XAML ビューで、Text プロパティに Customer 型の FirstName プロパティへのデータ バインディングが作成されます。

実行時のデータ コンテキストの設定

最後に、実行時のデータ コンテキストを割り当てます。 デザイン時に作成したデータ バインディングは、XAML やコードを変更しなくても実行時に動作します。

実行時のデータ コンテキストを設定するには

  1. コード エディターで MainWindow.xaml.cs または MainWindow.xaml.vb を開きます。

  2. 自動的に生成された MainWindow コンストラクターを次のコードに置き換えます。

    public MainWindow()
    {
        InitializeComponent();
    
        Customer c = new Customer();
        c.FirstName = "Brenda";
        c.LastName = "Diaz";
    
        this._grid.DataContext = c;
    }
    
  3. F5 キーを押してアプリケーションを実行します。

    テキスト ボックスに、実行時に作成された Customer オブジェクトの名が表示されます。

    実行時のデータ コンテキスト設定

次の手順

参照

参照

DataContext

その他の技術情報

デザイン時属性

WPF デザイナーでのデータ バインディング