指定的元素已经是另一个元素的逻辑子元素.先断开连接"第二次调用窗口时出错
本文关键字:元素 quot 第二次 连接 窗口 出错 断开 调用 另一个 | 更新日期: 2023-09-27 18:02:08
我目前正试图修复一个bug,我加载我的window1后登录到我的应用程序(这工作得很好),然后我使用我创建的功能回到登录表单更改登录的用户,我得到一个错误时加载我的window1第二次
错误消息"指定的元素已经是另一个元素的逻辑子元素。先断开连接。"
window1 code is
public Window1()
{
InitializeComponent();
var tc = TabsControl.Instance as Control;
Grid.SetColumn(tc, 1);
Grid.SetRow(tc, 1);
//error happens on this line
grdMainContent.Children.Add(tc);
}
不知道如何断开此元素,并且到目前为止在谷歌上没有成功。
我做了以下尝试。
grdMainContent.Children.Remove(tc);
和
if (!grdMainContent.Children.Contains(TabsControl.Instance as Control))
{
grdMainContent.Children.Add(tc);
}
和
if (grdMainContent.Children.Contains(tc))
{
grdMainContent.Children.Add(tc);
}
任何帮助都是非常感谢的
这是因为你似乎重用TabsControl,以前使用并添加为grdMainContent的孩子在你的窗口的另一个实例。
你可以使用:
Grid parentGrid = tc.Parent as Grid;
If(parentGrid != null) {
parentGrid.Children.Remove(tc);
}