У меня есть окно (форма Windows), где у меня есть два пользовательских элемента управления WPF, кроме других элементов управления.
Один пользовательский элемент управления имеет список элементов (имен) с доступным флажком вдоль стороны.
У другого есть описание предметов (некоторые картинки и другие детали).
Оба пользовательских элемента управления имеют свои модели просмотра
Пользователь может устанавливать и снимать флажки в первом пользовательском элементе управления. На основании его выбора, детали предметов добавляются / удаляются во второй пользовательский элемент управления.
Мы получаем все данные из базы данных. Итак, изначально для заполнения мы получаем данные из базы данных. Мы также сохраняем выбор / отмена выбора пользователя обратно в базу данных. Второй пользовательский элемент управления также должен обновить данные из базы данных. Мы ничего не храним в памяти.
Что должно произойти, так это то, что когда пользователь выбирает / отменяет выбор в первом пользовательском контроле, он должен быть добавлен во второй пользовательский элемент управления.
Итак, операция: Сохранить или удалить выборку в базе данных -> Отправить запрос второму пользовательскому элементу управления, чтобы обновить его коллекцию, считывая данные из базы данных.
Я использую объект Dispatcher первого пользовательского элемента управления (вызывается из обработчика событий в модели представления 1-го пользовательского элемента управления) и вызываю метод в родительской форме (форма контейнера Windows). Затем эта родительская форма вызывает обновление 2-й модели представления пользовательского элемента управления, которая обновляет 2-й пользовательский элемент управления.
Проблема в том, что пользовательский интерфейс 1-го пользовательского элемента управления зависает до завершения всего этого процесса. Вместо этого я хочу, чтобы пользовательский интерфейс первого пользователя не зависал. Причина в том, что пользовательскому интерфейсу 1-го элемента управления не нужно ждать обновления операции во 2-м пользовательском элементе управления. Обновление 2nd View может быть поставлено в очередь.
Итак, в основном я хочу, чтобы пользователь устанавливал / снимал флажки, просто отправлял уведомление (для обновления 2-го пользовательского элемента управления) и продолжал работать с моим пользовательским элементом управления, а не ждал.
Я пробовал фоновый рабочий, но, похоже, ничего не работает.
Любая помощь приветствуется.