我想将TabItems从一个TabControl动态复制或移动到另一个TabControl。不幸的是,我得到以下例外:
{“元素已经有一个逻辑父元素。它必须在旧父元素附加到新父元素之前与它分离。”}
尝试从旧的TabControl中删除它,然后将其添加到我的迭代器中的新抛出。
答案 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") );