这不是问题,因为我已经回答过了。但它也可能对其他人有帮助。
这是发生的事情:
- 使用 Datagridview 创建一个 WinForm 并绑定一个 Subsonic ...Collection,其中加载了 500 多个对象
- 将一些列添加到数据网格并至少设置一个 autosizemode = fill
- 添加逻辑以删除所有选定的列(即在按键上 -> 删除)
- 标记所有记录并删除它们
这大约需要 30 秒。在高端 PC 上(并按比例放大:1 分钟 1000 ...)
原因:
每次删除一行时,集合 ListChanged 事件都会触发,这会导致 datagridview 重新计算自动调整列所需的空间(如果有人对“内部”感兴趣,我会附上一个调用图。