Вызов OnNotifyPropertyChanged()
не совсем корректен в этом случае, так как коллекция все та же, однако элементы в коллекции изменились. Я не знаю точно, как работает код привязки WPF, но он может быстро проверить, изменилась ли ссылка, к которой он привязан, и если нет, не обновит интерфейс.
Причина, по которой ToList()
работает, заключается в том, что каждый раз, когда он вызывается, возвращается новый экземпляр List<T>
, поэтому при срабатывании OnNotifyPropertyChanged()
WPF получает изменения и обновляет все их привязки.
Я не знаю, возможно ли это или нет, но идеальным решением было бы использовать коллекцию для привязок, которая реализует INotifyCollectionChanged . Это будет запускать события, которые контролирует WPF, так что элементы могут быть добавлены, удалены и т. Д. Из пользовательского интерфейса в зависимости от ситуации.