使用可绑定动态字典删除C#WPF数据网格中的列

使用可绑定动态字典删除C#WPF数据网格中的列,c#,wpf,datagrid,C#,Wpf,Datagrid,我在删除datagrid中的一列数据时遇到了困难,并且删除的数据会传播到我的数据源。我已经实现了此SO中的数据绑定解决方案,并使用此代码删除我的列: vizDataGrid.Columns.Remove(cell.Column); 发生的情况是,UI显示要删除的列,但当我添加一列时,会显示我认为刚刚删除的列(或者至少显示该列中的数据)。任何帮助都将不胜感激,我已经做了好几天了(WinForms非常简单!)。谢谢 这是因为AutoGenerateColumns=“True”。将其设置为false

我在删除datagrid中的一列数据时遇到了困难,并且删除的数据会传播到我的数据源。我已经实现了此SO中的数据绑定解决方案,并使用此代码删除我的列:

vizDataGrid.Columns.Remove(cell.Column);

发生的情况是,UI显示要删除的列,但当我添加一列时,会显示我认为刚刚删除的列(或者至少显示该列中的数据)。任何帮助都将不胜感激,我已经做了好几天了(WinForms非常简单!)。谢谢

这是因为
AutoGenerateColumns=“True”
。将其设置为false,并在代码隐藏中自行添加列


请选中此选项,以便在
数据网格中动态添加列

为什么不隐藏列?因为这样它所表示的数据实际上不会被删除,对吗?您设计的数据结构(实际上包括列的集合)应该是固定的,您的网格只显示了用户想要与之交互的列。问题是我的数据是动态的,我不知道我可能有多少列(CSV文件)。好的,谢谢。但有一件事非常快——我将如何处理添加行?我是否仍然可以使用可绑定动态词典,或者我是否需要做其他事情?我有动态数据(CSV文件),不知道我有多少列,因此我受到限制。如果您查看我在回答中提供的链接,您可以看到如何从数据源中查找列数。关于行,您只需将数据源绑定到
DataGrid
ItemsSource
属性,WPF将为您生成它们。如果要添加另一行,请创建一个新的数据项并将其添加到您的数据源中。我知道,我现在正在通过解析CSV并计算一行中的项目数来构建列。对于行,我想我应该迭代每一行并创建一个
DataGridRow
对象。我被困在CSV文件中特定行的适当数据填充行的部分(现在代码中表示为数组)。因此,我认为我的问题是如何将数据源绑定到
ItemsSource
属性?