我有一个绑定到数据源dtDataMain的DataGridView,我有大约18列 - 最后两列17和18被合并到dtDataMain中(如果这对某些事情很重要)。 我还有一个checkedlistbox,它是中间表dtSelections中所选项目的表示。
我有一些伪代码:
dtDataMain.Merge(dtSelections, MissingSchemaAction.AddWithKey)
MyDataGridViewBindingSource.DataSource = dtDataMain
MyDataGridView.DataSource = MyDataGridViewBindingSource
我合并了两个表,因为我希望数据库提供初始csv(逗号分隔值)数据,这些数据将填充datagridview的所有行。 我使用checkedlistbox进行组成csv文本的可能选择,并根据我检查或未检查的状态,我在datgridview单元格和我的bindingsource中设置值。
我的问题是datgridview触发数据绑定完成 - 我不希望它这样做。有什么方法可以接受行第13行和第18行中的更改 - 其余列中的任何更改都会保留吗?
编辑1:9/27/2016 我需要在这里添加它,因为它对于注释字段来说太冗长了: 我知道自从我在合并表(lefthandside)上合并表acceptChanges以清除它之后,行已经改变了。 我运行getChanges验证一切都很好 - 没有变化。我将数据源添加到dataGridView - 它绑定然后触发bindingcomplete事件,
在bindingcomplete事件中我发现不知何故2行改变了行(0) 和行(1) - 有30行。我不知道为什么会这样。
所以我试图将我从DataGridView合并的列解耦,我合并它们,因为SQL服务器很好地提供了CSV,当我保存数据时,DataGridView返回了这两个添加了数据的列。
以前,当我保存数据时,两列未绑定,datagridview不会显示未绑定的数据 - 只是空列。这意味着每次保存我必须以格式和顺序编写所有数据行,就像我从数据库中获取数据一样,我还需要在每次加载时执行此操作,并确保它与每个行中的数据同步。这是我的奇怪问题的原因。我也有绑定到数据源的控件。
所以我在鸡肉和鸡蛋 - 也许有人有更好的方法来做到这一点?