gpt4 book ai didi

c# - DataGridView 不需要调用 EndNew

转载 作者:行者123 更新时间:2023-11-30 12:51:32 25 4
gpt4 key购买 nike

我正在使用从该站点获得的名为 SimpleFilteredList 的类:

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

当通过 BindgingSource 添加到 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);
}

最佳答案

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

Note In some scenarios, such as Windows Forms complex data binding, the collection may receive CancelNew or EndNew calls for items other than the newly added item. (Each item is typically a row in a data view.) Ignore these calls; cancel or commit the new item only when that item's index is specified.

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

关于c# - DataGridView 不需要调用 EndNew,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com