3

我的页面上有两个 RichTextbox。我将它们用作 Book 界面。有两个按钮可以前进和后退。

向前遍历页面工作正常。但是一旦我回击,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)为属性的自定义 Object。

4

2 回答 2

2

似乎 Clear 不会删除对 RTB 的 Paragraphs 的父引用。我使用以下 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 回答