DataGridView对EndNew的不必要调用
本文关键字:不必要 调用 EndNew DataGridView | 更新日期: 2023-09-27 18:03:02
我使用一个名为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。
我怎么能阻止这个EndNew函数被调用时,在DataGridView中选择了一个新的行?
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);
}
检查项目的索引,如果没有指定,则忽略调用。
http://msdn.microsoft.com/en-us/library/system.componentmodel.icanceladdnew.aspx注意在某些场景中,例如Windows窗体的复杂数据绑定,集合可能会接收其他项的CancelNew或EndNew调用比新添加的项。(每个项目通常是数据中的一行视图)。忽略这些电话;仅在以下情况下取消或提交新项目指定了该项的索引。