Это не вопрос, потому что я уже ответил на него. Но это может быть полезно и другим.
Вот что происходит:
- Создайте WinForm с Datagridview и свяжите коллекцию Subsonic ..., в которую загружено более 500 объектов
- Добавьте несколько столбцов в сетку данных и сделайте хотя бы один autosizemode = fill
- Добавить логику для удаления всех выбранных столбцов (т. Е. При нажатии клавиши -> удалить)
- Отметить все записи и удалить их
Это должно занять около 30 сек. на старшем ПК (и масштабируется: 1 мин для 1000 ...)
Причина:
Каждый раз, когда вы удаляете строку, запускается событие коллекций ListChanged, которое заставляет представление данных пересчитать пространство, необходимое для столбца с автоматическими размерами (если кто-то интересуется «внутренними компонентами», я прикрепил граф вызовов.