次の方法で共有


モデル アイテム ツリーのプログラミング

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このサンプルでは、Windows Presentation Foundation (WPF) ツリー ビューの宣言型データ バインディングを使用して ModelItem ツリーを操作する方法を示します。

Ee662951.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Designer\ProgrammingModelItemTree

サンプルの詳細

ModelItem ツリーは、編集する基のインスタンスに関するデータを表示するために Windows ワークフロー デザイナーのインフラストラクチャで使用される抽象表現です。次の図は、ワークフロー デザイナーのインフラストラクチャのさまざまな層を表しています。

ワークフロー デザイナーのアーキテクチャ

ModelItem は、基になる値へのポインターと、ModelProperty オブジェクトのコレクションで構成されています。ModelProperty オブジェクトはさらに、プロパティの名前や型などのデータと、また別の ModelItem である値へのポインターで構成されています。ModelProperty から返される一部の ModelItem に対しては、ツリー ビューに正しく表示されるように操作するために値コンバーターが使用されます。このサンプルでは、次の例のような命令構文を使用して ModelItem ツリーを命令型プログラミングで操作する方法を示します。

ModelItem mi = wd.Context.Services.GetService<ModelService>().Root;
ModelProperty mp = mi.Properties["Activities"];
mp.Collection.Add(new Persist());
ModelItem justAdded = mp.Collection.Last();
justAdded.Properties["DisplayName"].SetValue("new name");

このサンプルを使用するには

  1. Visual Studio 2010 で ProgrammingModelItemTree.sln ソリューションを開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックして、ソリューションをビルドします。

  3. F5 キーを押してアプリケーションを実行します。WPF フォームが表示されます。

  4. [Load WF] ボタンをクリックして ModelItem を読み込み、ツリー ビューにバインドします。

  5. [Change Model Item Tree] ボタンをクリックして先ほどのコードを実行して、ツリーにアイテムを追加してプロパティを設定します。

Ee662951.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Designer\ProgrammingModelItemTree