带有标题'*'的DataGridColumn已存在于DataGrid的Columns集合中

Den*_*nis 12 c# wpf mvvm wpfdatagrid

我有一个MVVM模式的WPF应用程序.在我的一个观点中,我必须绑定ObservableCollection到视图.在那个视图中,我有一个ListBox和一个DataGrid都绑定到相同ObservableCollection但做不同的事情,如事件,风格等.

我只需要在时间,我所做的是创建两个用户控件,一个用于显示其中一个控件DataGrid和其他的ListBox.我通过ContentControl在主视图上放置一个类似于这个博客的东西来切换它们.默认视图是DataGrid,当点击一个按钮时,显示另一个视图(即ListBox).直到这个工作正常.

还要记住,数据网格列是使用以下链接中描述的解决方案动态生成的.所以当我回去DataGrid查看它时,在foreach语句中向数据网格添加列时抛出错误(请参阅上一个链接的答案)

"带有标题'Ord'的DataGridColumn已经存在于a DataGrid.的Columns集合中.DataGrids不能共享列,也不能包含重复的列实例."

但我确信在DataGrid向其Count属性添加列之前是零(dataGrid.Columns.Count()).那么DataGrid标题属性如何保持?有没有办法清除标题值?

请建议......

小智 0

将实例添加到 WPF 中的控件或元素时,您应该始终清除添加的控件的父级,因为当您将控件添加到子级集合时,父级控件将作为其父级添加到新子级,这就是消息正在告诉你