Действителен ли этот senerio?
У меня есть вид для поддержания предмета.
У меня есть View Model, которая выставляет Объект Item (реализует INotifyPropertyChanged) как Свойство, к которому привязан View.
Допустимо ли передавать объект Item фоновому работнику, в котором он был изменен, а затем вызывать событие PropertyChanged после завершения BackgroundWorking?
Или BackgroundWorker никоим образом не должен изменять объект Item. Я бы обновил существующий объект Item с результатами, переданными BackgroundWorker. Это будет сделано в событии RunWorkerCompleted. Но блокирует ли это поток пользовательского интерфейса и уничтожает объект, имеющий рабочий фон?
Confused
Я постараюсь объяснить.
Пользователь использует опцию для создания Предмета. Я создаю модель просмотра и просмотра. В модели View создается пустой объект Item. Ему предоставляется вид для поддержания предмета. При выборе свойства «Тип элемента» это инициирует сложный процесс для создания списка свойств, которые будут введены пользователем. Я мог бы заблокировать поток пользовательского интерфейса во время создания списка, но это дает плохой пользовательский опыт. Я хочу передать обработку в фоновый поток, сохраняя при этом пользовательский интерфейс. В настоящее время я установил флаг, указывающий, что раздел в представлении загружается, передал объект Item в BackgroundWorker, который обновляет наблюдаемую коллекцию Properties. Когда BackgroundWorking завершится, я вызываю событие PropertyChanged, которое обновляет раздел представления, связанный со списком, и отключает флаг, чтобы указать, что раздел загружается. Кажется, это работает без проблем. Но у меня есть ощущение, что я не должен обновлять связанные объекты из модели представления в фоновом потоке.
Спасибо, Тим