シミュレーションからの出力データを保持するために使用しているオブジェクトがあります。このオブジェクトのパブリック プロパティを TreeView に設定したいのですが、このオブジェクトのメンバーを追加または削除する可能性があると思うので、TreeView ロジックがオブジェクトのプロパティで手動で更新する必要はありません。
例として、次のように というクラスがあるとTemperature
します。
public class Temperature
{
public double Wall { get; set; }
public double Floor { get; set; }
public Temperature()
{
Wall = 0d;
Floor = 0d;
}
}
したがって、TreeView には、Temperature という名前のルート ノードがあり、その後に Wall と Floor という名前の子ノードが続きます。私の現在の理解は、それをハードコーディングすることです。
TreeNode tnTemperatureParent = treeViewData.Nodes.Add("Temperature");
tnTemperatureParent.Nodes.Add("Wall");
tnTemperatureParent.Nodes.Add("Floor");
Ceiling
という名前のパブリック プロパティをTemperature
クラスに追加する必要があるとします。TreeView ロジックに移動して、 の子ノードを含める行を追加する必要がありますCeiling
。
これはすべて、小さなデータセットやプリミティブ データ型には適しているように見えますが、ここでは高度な制御が必要です。TreeView に入力したいオブジェクトは、プロットに使用したいリストなど、より多くの情報を保持することになります。私は約 50 個以上の出力変数を見ていますが、完了する前に、あと数個、または数個少なくすることが決定される可能性があります。
要約すると、ここで 2 つの質問があると思います。
A) TreeView にオブジェクトのパブリック プロパティを設定する最適な方法は何ですか?
B) データを TreeNodes の一部として (たとえば、Tag
プロパティを使用して) 保存する必要がありますか?それとも、ツリー構造でオブジェクトを並行して参照する必要がありますか?
編集:私はまだオブジェクト指向パラダイム全体(手続き型プログラマーとして始めた)でかなり新しいので、時々視覚化するのに苦労します。ここに、私が進んでいる方向性を理解するのに役立つ追加情報をいくつか示します。
私が書いたシミュレーションの間、「出力データ」クラスに時間ステップ量を保持します。クラスはサブクラス (例: 温度、圧力) に分割され、それぞれにいくつかのパラメーター (例: 上記の例では壁、床、天井) があります。それらを TreeView にダンプしたい理由は、ドラッグ アンド ドロップ機能を構成して、データ パラメータ (床温度など) を別のコントロール (プロットやテーブルなど) にドラッグできるようにするためです。データを提示できます。それが役立つことを願っています。