- - PR -
TreeViewオブジェクトのコピー方法(C#)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-02 18:56
投稿者のalfです。 度々のレスポンス、毎度有難うございます。 説明しやすいように二つのTreeViewの同期を例に挙げましたが、実際にや りたいのは下記のようなTreeNode管理でした。 画面を持たない | Windows Formを持つ インターフェイス(dll) | アプリケーション(exe) (TreeNode管理用) | | XMLファイルを関連付けた | Form上に張りつけられた TreeViewオブジェクト(※) −−−−−−→ TreeViewオブジェクト CloneでNodeコピー | | | ↑TreeView上でNodeが変更されたらインターフェイス側のTreeNodeも 連動して変更させたい ((※)はTreeNodeオブジェクトでもいいと思いますが) 他のインターフェイスからも上記(※)の状態を参照しているため、 TreeNodeがインターフェイスから参照コピーできればTreeView上でNodeが 変更されても(※)の管理が楽になると思ってました。 現在はTreeView上でノードが変更されたら、TreeViewのNodeを引数にイン ターフェイスに渡してNodeの処理を行っています。 他に方法が思いつかなかったので今はこんな作りになっています。 | ||||||||
|
投稿日時: 2006-08-02 19:09
これを最初に書いておけば、流れは違っていたでしょうね。
むしろ、そうした方が良いでしょう。 TreeView で管理すると、TreeView.Nodes プロパティに追加するための手続きが必要なのですから... TreeNodeCollection 型で管理されてはどうでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-08-03 15:35
↑なぜか区切り線('|')が、かなりずれて表示されてしまってますが・・・(泣) 投稿者のalfです。 じゃんぬねっとさん、レスポンス有難うございます。 (確かに最初から現状をありのまま伝えていたら、より相応しいアドバイスが 頂けていたかもしれません・・・以後気をつけます) 結局、インターフェイス側のXMLを割り当てたTreeNodeはTreeView型ではなく、 御指摘どおりTreeNodeCollection型で持たせることにしました。 インターフェイスとアプリ間でNodeが参照コピーできない以上、アプリ上で Nodeに対する変更処理が行われた場合はNodeをコピーするためにインターフ ェイスに対してNode全体を渡す事でインターフェイスとアプリ間でNodeの同 期を図っています。 インターフェイスとのやり取りの際に、引数(Node全体)が一つ増えてしまっ たものの代わりに公開するインターフェイスのメソッド数が減らせれたので これで進めようと思います。 皆様、色々と有難うございました。 |