【发布时间】:2012-09-25 15:29:04
【问题描述】:
我的页面上有两个 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。
【问题讨论】:
-
我不是 RichTextbox 控件方面的专家,因此我不确定您的某些属性。您是否需要更全面地解释自定义对象?我猜 TxtBlobLeft 是一个 RichTextbox,但我没有找到 Blocks 属性或了解您如何添加段落类型的项目。尽管如此,您似乎在段落对象中有对富文本框的引用,在您返回并再次添加之前需要将其删除。
-
是的。 TxtBlobLeft 是 RichTextbox。是的,显然 TxtBlobLeft.Blocks.Clear() 不会删除元素。
-
我遇到了类似的问题。我认为这是 RTB 中的一个错误。
-
我的解决方法是每次都重新创建段落。
标签: c# silverlight richtextbox silverlight-5.0 paragraph