2009-06-29 24 views
1

C#とWindowsフォームで作業するので、私はたくさんの "タスク"クラスを持っています。WindowsフォームTreeViewアイテムを実際のデータに関連付ける

これらのタスクは、「プロジェクト」クラス(明らかにList<Task>)に格納されていますが、これらのタスクはすべて、 XMLにシリアライズされます。私は、タスクを再帰的に処理し、それらをすべてTreeViewに入れる機能を持っています。それはちょうどそれのように動作します。

しかし、私がTreeViewからタスクを選択した場合、どのようにProjectからそれを見つけることができますか?私は何らかの外来キー(TreeNodeのキーとなるでしょうか?)を考えましたが、XMLをシリアライゼーションに使用しているので、これは不可能です。

どうすればよいですか?

答えて

3

"Task"オブジェクトへの参照は、各TreeNodeのTagメンバーに記述します。タグをタスクにキャストし、任意のツリーイベントを処理するときにタスクを使用するのが非常に簡単になります。

+0

Upvoted。最も簡単なソリューションは常に最高の:) – arbiter

1

各タスクに一意のキー(辞書に格納)を与え、そのint値をTreeNodeのタグに設定する必要があります。

1

すべてのツリーノードにはFullPathプロパティ(ルートからノードへのパスを表します)があります。フルパスをキーとして辞書を作成してタスクに入力できます。次に、ノードをクリックすると、ノードFullPathを取得し、辞書からタスクを抽出します。

関連する問題