Ответ 1
Это может представлять интерес:
http://www.themissingdocs.net/wordpress/?p=465
наиболее важные параграфы:
Но реализация не масштабируется, она медленная, она работает ужасно с большими списками. Если ваш тип элемента поддерживает INotifyPropertyChanged, каждый раз, когда один из этих элементов вызывает событие с измененным свойством, весь список идет, чтобы выработать индекс в списке элемента, который поднял событие! Я был в шоке, когда впервые осознал это. Вы видите, что BindingList действительно просто довольно тонкая оболочка над Collection, поэтому нет никаких метаданных, связанных с каждой записью, вся привязка элемента PropertyChanged событие направляется на один обработчик, и все, что ему дается, - это источник и имя измененного свойства, поэтому нет способа включить параметр NewIndex в ListChangedEventArgs без выполнения поиска. (По умолчанию этот поиск даже использует сопоставитель объектов по умолчанию, поэтому, если в вашем списке есть два разных, но иногда равных объекта, пользуйтесь результатами...)
Еще одно примечание - AddNew, другая функция, которую BindingList имеет, какая коллекция не имеет, также не масштабируется. Он должен использовать IndexOf, чтобы узнать, где в списке появился новый добавленный элемент, если он должен отменить добавление, потому что он поддерживает автоматическую сортировку в производных типах. (BindingList не поддерживает автоматическую сортировку...)