如何从另一个TabControl将TabItems添加到TabControl?

时间:2010-04-13 03:52:23

标签: wpf tabcontrol

我想将TabItems从一个TabControl动态复制或移动到另一个TabControl。不幸的是,我得到以下例外:

{“元素已经有一个逻辑父元素。它必须在旧父元素附加到新父元素之前与它分离。”}

尝试从旧的TabControl中删除它,然后将其添加到我的迭代器中的新抛出。

1 个答案:

答案 0 :(得分:2)

我猜你正在使用foreach块找到要删除的标签。迭代时,您无法修改集合。所以use a for loop代替删除并缓存要删除的标签。

然后将其添加到新父级。这应该有用。

不是最优雅的,但它现在必须要做。出于某种原因,Linq尚未实现Lisp / Ruby / et.all拒绝操作。 (或者我还没有找到它。最近的事情是List<T>.RemoveAll(predicate)。如果确实如此 - 你可以做类似......

tabControl2.Items.AddRange( tabControl1.Items.Reject(tab => tab.Name = "MarkedOne") );