不知道大家又没有碰到这样的问题,在一个DataGridView中,一些列是绑定到数据源,一些列是没有绑定的,当对绑定的列进行排序的时候,未绑定的列数据就丢失。
代码如下
DataGridView未绑定列排序问题 private void BindDataToGrid()
        }

运行出来的结果是这样的,前面4列是绑定到数据源的,最后一列是未绑定列,是一个DataGridViewComboCheckBoxColumn,先选中一些值
DataGridView未绑定列排序问题
点击第二列Col1排序,最后一列前面选择的值就消失啦
DataGridView未绑定列排序问题
这问题困扰我很久啦,网上也没有找到比较好的解决办法,还望大家多多指教,谢谢。

如果是绑定这些列,然后设置sortmode就不会有这样的问题,下面是改变的代码

DataGridView未绑定列排序问题private void BindDataToGrid()
        }
上面sortmode都是设置成自动排序,关于这属性详细设置,请参考msdn。

对绑定列排序,为绑定列值消失问题的解决办法:
设置VirtualMode=True,处理CellValueNeededCellValuePushed两个事件,要对未绑定的列保存起来,看看具体代码就清楚啦
DataGridView未绑定列排序问题 private void Form2_Load(object sender, EventArgs e)
        }
currentID标识当前编辑行的ID,hshData保存当前行未绑定列的值和行标识的映射。

这样处理之后再排序,未绑定的最后一列的值就不会消失。DataGridView未绑定列排序问题

相关文章: