繁体   English   中英

DataGridView 对 EndNew 的不必要调用

[英]DataGridView unwanted calls to EndNew

我正在使用一个名为 SimpleFilteredList 的 class,它是从这个站点获得的:

http://blogs.msdn.com/b/winformsue/archive/2007/12/06/filtering-code.aspx

它允许我在通过 BindingSource 添加到 DataGridView 时对业务对象应用基本排序。 它很好地满足了我的目的,但是我不了解一个方面。

每次在 DataGridView 中选择一个新行时,都会提示调用 SimpleFilteredList class 中覆盖的 EndNew function。 当最后一行是选择的前一行时,这尤其令人讨厌,因为它会强制执行排序算法。

所有列和 DataGridView 的 Readonly 设置为 True,AllowUserToAddRows 和 AllowUserToDeleteRows 设置为 False。

在 DataGridView 中选择新行时,如何停止调用此 EndNew function?

EndNew function 在 SimpleFilteredList Class:

    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);
    }

检查项目的索引,如果未指定则忽略调用。

注意 在某些情况下,例如 Windows Forms 复杂数据绑定,集合可能会收到对新添加项目以外的项目的 CancelNew 或 EndNew 调用。 (每个项目通常是数据视图中的一行。)忽略这些调用; 仅当指定项目的索引时才取消或提交新项目。

http://msdn.microsoft.com/en-us/library/system.componentmodel.icanceladdnew.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM