Wpf 微数据网格列
我有一个WPF Caliburn.Micro应用程序,它有一个带有DataGrid的选项卡控件。DataGrid中的列是以编程方式设置的。我可能需要关闭一个选项卡,然后再次打开它。我得到一个例外,说DataGrid中已经存在一列,尽管实际上根本没有列。你能帮我做这个吗 在图片上,您可以在“监视”窗口中看到myGrid.Columns.Count等于0Wpf 微数据网格列,wpf,datagrid,caliburn.micro,Wpf,Datagrid,Caliburn.micro,我有一个WPF Caliburn.Micro应用程序,它有一个带有DataGrid的选项卡控件。DataGrid中的列是以编程方式设置的。我可能需要关闭一个选项卡,然后再次打开它。我得到一个例外,说DataGrid中已经存在一列,尽管实际上根本没有列。你能帮我做这个吗 在图片上,您可以在“监视”窗口中看到myGrid.Columns.Count等于0 看起来您可能正在向另一个数据网格添加一个已经存在的列(在以前的数据网格中)。错误表明该列存在于a数据网格的Columns集合中,不一定是您试图将其
看起来您可能正在向另一个数据网格添加一个已经存在的列(在以前的数据网格中)。错误表明该列存在于a数据网格的
Columns
集合中,不一定是您试图将其添加到的集合中
DataGrid
无法共享列-您需要从以前的DataGrid中删除该列。这可能意味着您的某个地方也存在内存泄漏。如果您的选项卡项VM继承了屏幕
,您可能希望覆盖OnDeactivate
并清除列
或者,您可以通过列获取对父网格的引用,并将其从父网格中删除,尽管我自己没有使用过标准的.NETDataGrid
(仅使用Teleriks one),因此我不能确定-但就我个人而言,clear-down-on-close似乎是一个更干净的实现
类的新实例不应该负责在死实例之后进行清理,而应该由类自己负责清理(我一直告诉我的孩子们!)看起来您可能正在将一个已经存在的列(在以前的datagrid中)添加到另一个datagrid中。错误表明该列存在于a数据网格的
Columns
集合中,不一定是您试图将其添加到的集合中
DataGrid
无法共享列-您需要从以前的DataGrid中删除该列。这可能意味着您的某个地方也存在内存泄漏。如果您的选项卡项VM继承了屏幕
,您可能希望覆盖OnDeactivate
并清除列
或者,您可以通过列获取对父网格的引用,并将其从父网格中删除,尽管我自己没有使用过标准的.NETDataGrid
(仅使用Teleriks one),因此我不能确定-但就我个人而言,clear-down-on-close似乎是一个更干净的实现
类的新实例不应该负责在死实例之后清理,而应该由类自己负责清理(我一直告诉我的孩子们!)非常感谢。我否决了,这就成功了。非常感谢。我超越了我的控制权,这就成功了。