将行添加到已排序的数据网格

时间:2018-06-11 15:49:56

标签: c# sorting datagridview

我在datatable中显示datagridview。列是可排序的。用户可以选择添加行。

如果用户排序,然后在特定索引处添加一行,则空白行将自动排序到顶部/底部。为了解决这个问题,我抓住了这个事件,并提出了一个对话框来确认是否要删除"活动"排序

enter image description here

我的意思是主动排序,是排序将被保存(保存?)但不再对新行进行排序,因此可以在任何索引处添加新行。从这里可以单击一列以开始新的排序。

单击“确定”后,我执行以下操作;

((DataTable)dgvData.DataSource).DefaultView.Sort = string.Empty;

这可以删除排序,但会将网格返回到原始的,已停顿的顺序。我该如何保留这种类型?

我是否需要将DefaultView保存在DataSource上并重新绑定?或者这里有一个更简单的解决方案吗?

更新

看起来好像以下几行将实现我之后的目标,但我想知道这是否因为重新创建DataSource而效率非常低。此外,它感觉有点hacky。

DataSource = ((System.Data.DataTable)dgvData.DataSource).DefaultView.ToTable();

0 个答案:

没有答案