DataGrid использует UI-виртуализацию, чтобы рисовать только то, что видно на области порта просмотра. Это уменьшает количество создаваемых элементов пользовательского интерфейса, что делает его лучше в памяти и производительности. Однако, когда вы имеете дело с ObservableCollections, который содержит тысячи элементов, вам следует рассмотреть возможность использования также методов виртуализации данных.
Я бы порекомендовал пойти KIS (Keep It Simple) и проделать простейший подход: Просто используйте .NET ObservableCollection.
Если вы испытываете задержанный пользовательский интерфейс во время обновлений, вам нужно попробовать попробовать какой-то ObservableCollection, который позволяет блокировать обновления пользовательского интерфейса во время фазы обновления (если вам нужно обновить коллекцию в большом количестве предметов за короткое время).
Если вы являетесь опытным пользовательским интерфейсом во время прокрутки или selcting, или ваша память слишком высока, вам также необходимо рассмотреть возможность виртуализации данных.
Успехов
Статья полностью устарела, поскольку «ObservableCollection» был удален из WindowBase и полностью отсоединен от самого WPF с .NET 4.0. –
Alejandro