Что именно делает среда выполнения WPF после вызова события PropertyChanged интерфейса INotifyPropertyChanged
Мне задали этот вопрос в интервью
"Когда мы хотим отразить измененное значение свойства в представлении, когда некоторые обновляют привязанную собственность в бэкэнде в ViewModel, мы обычно вызываем событие, которое создается реализацией интерфейса INofityPropertyChanged".
"Итак, вопрос в том, что мы не привязываем какой-либо обработчик событий к событию, измененному с помощью свойства, это происходит во время выполнения wpf. Итак, что именно происходит сразу после вызова события с измененным свойством из ViewModel.
1 ответ
В WPF Dispatcher обрабатывает большинство (возможно, все) рабочих элементов пользовательского интерфейса в циклах, например в очередях. Разные рабочие элементы имеют разные приоритеты, поэтому Dispatcher может обрабатывать некоторые элементы с очень высоким приоритетом во времени.
Вызов события "измененное свойство" будет перенесен в задачу привязки данных и будет помещен в очередь Dispatcher с приоритетом DataBinding. Диспетчер будет управлять положением элемента в очереди и выполнит его, чтобы обновить привязку данных здесь, в соответствующее время.