我正在使用从该站点获得的名为 SimpleFilteredList 的类:
http://blogs.msdn.com/b/winformsue/archive/2007/12/06/filtering-code.aspx
它允许我在通过 BindingSource 添加到 DataGridView 时对业务对象应用基本排序。它很好地满足了我的目的,但是我不了解一个方面。
每次在 DataGridView 中选择新行时,都会提示调用 SimpleFilteredList 类中重写的 EndNew 函数。当最后一行是选择的前一行时,这尤其令人讨厌,因为它会强制执行排序算法。
所有列和 DataGridView 的 Readonly 设置为 True,AllowUserToAddRows 和 AllowUserToDeleteRows 设置为 False。
在 DataGridView 中选择新行时,如何停止调用此 EndNew 函数?
SimpleFilteredList 类中的 EndNew 函数:
public override void EndNew(int itemIndex)
{
// Check to see if the item is added to the end of the list,
// and if so, re-sort the list.
if (sortPropertyValue != null && itemIndex > 0 && itemIndex == this.Count - 1)
ApplySortCore(this.sortPropertyValue, this.sortDirectionValue);
base.EndNew(itemIndex);
}