- - PR -
TreeViewItem追加について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-04-06 21:42
初めまして。TreeViewItemの追加方法について質問です。
以下の場所にTreeViewItemを追加しようと思っているのですが、例外が発生し、回避方法が分からず悩んでいます。 『追加前』 TreeViewItem1 TreeViewItem2 『追加場所』 TreeViewItem1 ←ここにTreeViewItemを追加 TreeViewItem2 『追加後』 TreeViewItem1 TreeViewItem3 TreeViewItem2 と言うようなTreeViewを作成したいのですが、TreeViewItem3の子にTreeViewItem2を追加するところで悩んでいます。 「古い親を解除してください」というような例外が発生するのですが、その解除方法が分かりません。 どのように回避すれば良いのでしょうか?ご教授をお願いします。 開発言語はVisualStudio 2008 C#です。 | ||||
|
投稿日時: 2009-04-06 21:51
> 「古い親を解除してください」というような例外が発生するのですが
何をしたからですか? 要約すると 「リストビューの任意の場所にアイテムを追加しようとしたけどエラーが出ます。 なぜですか?」 だと思いますが、何をしたかわからないので答えようが無いと思います。 > 「古い親を解除してください」というような例外 正確な例外を教えて下さい。 > 『追加後』 > TreeViewItem1 > TreeViewItem3 > TreeViewItem2 > TreeViewItem3の子にTreeViewItem2 TreeViewItem3 の子に TreeViewItem2 を入れると TreeViewItem1 TreeViewItem3 - TreeViewItem2 と2階層目に入る事になると思います。 TreeViewItem1 と TreeViewItem2 の間に入れたら良いんじゃないでしょうか。 あれ? TreeView に追加するのって TreeNode じゃありませんでしたっけ。 [ メッセージ編集済み 編集者: King 編集日時 2009-04-06 22:10 ] | ||||
|
投稿日時: 2009-04-07 00:01
例外が発生するまでのソースです。
// 初期状態 TreeView treeView = new TreeView(); TreeViewItem item1 = new TreeViewItem(); item1.Header = "TreeViewItem1"; // ツリービューにアイテムを追加 treeView.Items.Add(item1); TreeViewItem item2 = new TreeViewItem(); item2.Header = "TreeViewItem2"; // item1の配下にitem2を追加 item1.Items.Add(item2); // この時点でitem1の子にitem2が存在しています。 // item1とitem2の間にitem3を追加したい // item1の配下にTreeViewItemを追加 TreeViewItem item3 = new TreeViewItem(); item3.Header = "TreeViewItem3"; // item1の配下にitem3を追加 item1.Items.Add(item3); // item3の配下にitem2を追加 // ここで例外が発生 item3.Items.Add(item2); | ||||
|
投稿日時: 2009-04-07 00:12
1.もしかして WPF ですか?
2.正確な例外を教えて下さい。 3. > item1.Items.Add(item2); > item3.Items.Add(item2); WPF だとしたら違うかもしれませんが、 Add したらそのアイテムの下層に追加されるのではないのですか? treeView.Items.Add(item1); treeView.Items.Add(item3); treeView.Items.Add(item2); で良いんじゃないですか | ||||
|
投稿日時: 2009-04-07 00:20
下記コードで仰る様な動作は出来ましたがどうですか?
| ||||
|
投稿日時: 2009-04-07 22:43
Kingさん
すいません、書くのを忘れていました。 >1.もしかして WPF ですか? WPFで作成しています。 >2.正確な例外を教えて下さい。 例外のメッセージですが、「要素には既に論理親があります。新しい親に添付する前に、古い親から解除する必要があります」と発生しました。 |
1