バージョン

ObjectDataProvider の作成

始める前に

Microsoft® Windows® Presentation Foundation でコレクションをコントロールにバインドするためには、コレクションは IEnumerable インタフェースを実装する必要があります。この要件を満たすと、プロシージャコードを使用してデータバインドされたコントロールにコレクションをバインドできます。さらに、ObjectDataProvider を使用してコレクションをコントロールに宣言的にバインドできます。

このトピックでは、ObjectDataProvider を特定のコントロールにバインドする方法についての説明はありません。ただし、コントロール固有のタスクについてはこのトピックで作成された ObjectDataProvider を使用する必要があります。このトピックで作成した ObjectDataProvider にコントロールをバインドする方法については、このトピックの最後にあるリンクをご覧ください。

達成すること

このトピックは、ObjectDataProvider を設定する方法を示します。ObjectDataProvider を設定するために示された Extensible Application Markup Language (XAML) は、一般的にコントロールに依存しなくても十分な程度に記述されています。

この例で使用される ObservableCollection は Car オブジェクトのコレクションです。 CarBusinessLogic クラスは、C# および VB.NET 言語で利用可能で、ダウンロードしてこのサンプルで作業をする間にプロジェクトで使用することができます。

Note

:ダウンロード可能な ObservableCollection クラス ファイルは、このトピックの範囲外であるため、このトピックでは扱いません。

次の手順を実行します

  1. CarsBusinessLogic クラスをプロジェクトに追加します。

  2. Window または Page の開始タグに、属性として CarsBusinessLogic クラスの XML 名前空間を追加します。

XAML の場合:

<!--
Visual Basic を使用している場合、プロジェクトのルートの名前空間で CarsBusinessLogic クラスに割り当てている XML 名前空間を置き換えます。
-->
xmlns:Cars="clr-namespace:IGDocumentation"
  1. Resources セクションを Window または Page に追加します。

XAML の場合:

...
<Window.Resources>
        <!--TODO: ここで ObjectDataProvider を追加します。-->
</Window.Resources>
...
  1. 手順 3 で追加した Resources セクションに ObjectDataProvider を追加します。

    1. Key - Key プロパティを CarData に設定します。この Key を使用してデータ プロバイダを後で参照します。

    2. ObjectType - ObjectType プロパティを '{x:Type Cars:CarsBusinessLogic}' に設定します。データ プロバイダは、ObjectType プロパティに基づいてオブジェクトをインスタンス化します。

    3. MethodName - MethodName プロパティを 'GetCars' に設定します。データ プロバイダはオブジェクトをインスタンス化した後でこのメソッドを呼び出します。ObjectDataProvider はオブジェクトのコレクションに返すことが制限されています。DataSet または DataTable を返すメソッドを指定することもできます。

XAML の場合:

...
<ObjectDataProvider x:Key="CarData" ObjectType="{x:Type Cars:CarsBusinessLogic}" MethodName="GetCars" />
...
  1. この時点でアプリケーションを実行すると、空の Window を表示するだけです。結果を確認するためには、コントロールを Window に追加して、このトピックで作成した ObjectDataProvider をコントロールにバインドする必要があります。