Спасибо за публикацию этого ответа. Даже если вы используете ObservableCollection, вам может потребоваться использовать BindingExpression.UpdateTarget. Это может быть в том случае, если коллекция не находится в потоке пользовательского интерфейса. Я писал несколько многопоточных приложений WPF и обнаружил, что вынужден убрать привязку данных при переносе кода модели в другой поток, потому что не могу рассчитывать на то, что система обновлений действительно будет работать. Хотя я считаю, что привязка данных является отличной концепцией, я думаю, что непрозрачность системы привязки данных была реальным препятствием для моего принятия. (Извините за напыщенную речь!) Еще раз спасибо, Адам.