3

ページに 2 つの RichTextbox があります。それらをBookインターフェースとして使用しています。前後に2つのボタンがあります。

ページを前方にトラバースすると問題なく動作します。しかし、一度反撃すると、VS2010 は例外を発生させます

Element is already the child of another element.

これは、RichTextbox に追加する段落用です。これは、両方の RichTextbox を新しいデータであふれさせる前にクリアしても発生します。

以下の私のコード。私は何が欠けていますか?

TxtBlobLeft.Blocks.Clear();
        TxtBlobRight.Blocks.Clear();


        foreach (Paragraph item in pagesStack[count].paras)
        {
            TxtBlobLeft.Blocks.Add(item); //Throws exception here
        }


        foreach (Paragraph item in pagesStack[count + 1].paras)
        {
            TxtBlobRight.Blocks.Add(item);
        }

注: pagesStack は、プロパティとして Paras (つまり List) を持つカスタム オブジェクトです。

4

2 に答える 2

2

Clear は Paragraphs の親参照を RTB に削除しないようです。次の forach ループを使用して Clear の新しいメソッドを作成し、すべての項目を削除しました。

foreach (Paragraph item in paras)
        {
            Page1.Blocks.Remove(item);
        }

paras は、以前に RTB に追加した段落のリストです。

于 2012-10-07T15:13:00.650 に答える
0

ループに入ったときにアイテムの親が何であるかをデバッガーで確認できますか?

于 2012-10-04T17:08:24.663 に答える