このコントロールを見ていると、データバインディング用の標準の .net "datasource" および "datamember" プロパティが欠けているようです。このコントロールはバインド可能ではありませんか? 特定のデータ ソースからツリービューを生成するカスタム関数を作成し、必要に応じてデータ オブジェクトを埋め込むことができると思いますが、それは「ベスト プラクティス」ですか? それとも、誰もがサードパーティのツリービュー コントロールを使用しているだけですか?
27713 次
3 に答える
9
データバインディングがないという点で正しいです。その理由は、TreeView が階層データ構造であるためです。つまり、単純なリストではありません。その結果、databind オプションは List 構造とは言えません。
悲しいことに、独自の populate メソッドを作成するか、サード パーティのコントロールを購入する必要があります (最終的には、独自の populate メソッドを持つことになります)。
これは、 Binding Hierarchical Dataに関する適切な MSDN 記事です。
于 2008-12-16T23:38:24.597 に答える
5
Developer'sExpressのツリーコントロールを使用しています。データのテーブルを取得し、階層的に表示/編集します。
必要なのは、テーブルの主キーフィールドと親IDフィールドだけで、何がどこに行くのかを把握できます。
独自のコードをロールして独自のクラスを使用する場合も、同じことができます。
class Node
{
System.Collections.Generic.List<Node> _Children;
String Description;
void Node()
{
_Children = new System.Collections.Generic.List<Node>();
}
public System.Collections.Generic.List<Node> Children()
{
return (_Children);
}
}
class Program
{
static void Main(string[] args)
{
System.Collections.Generic.List<Node> myTree = new System.Collections.Generic.List<Node>();
Node firstNode = new Node();
Node childNode = new Node();
firstNode.Children().Add(childNode);
}
}
于 2008-12-17T02:46:58.010 に答える
2
数レベルしかない場合は、データセットにいくつかのテーブルを設定し、列に DataRelation を設定します。次に、いくつかのネストされたループを使用して、ツリー ノードを作成します。
于 2008-12-16T23:47:27.060 に答える