Я думаю, что все должно быть в порядке, если в нем нет больших изменений (например, тысяч элементов) и вы управляете безопасностью потоков.
Для поддержки автоматического обновления при изменении количества элементов в коллекции, используйте ObservableCollection
и для поддержки автоматического обновления свойств объекта вы реализуете INotifyPropertyChanged
.
В случае большого набора элементов, вместо очистки коллекции и заполнения ее новыми данными, вы можете оптимизировать этот процесснайдя изменения между старым и новым набором элементов и соответствующим образом обновив коллекцию.
Чтобы управлять безопасностью потоков, вам придется вводить любой код, который прямо / косвенно (включая внесение изменений в свойства ViewModel
)которые в свою очередь обновляют представление) изменяют представление в методе Dispatcher.Invoke
.