2013-04-04 7 views
2

Я разрабатываю приложение с Cinch Framework для Sasha Barber для MVVM в WPF. Это приложение показывает две вкладки. MainWindowViewModel запустил фоновый рабочий, который прослушивает входящие соединения сокетов. Если клиент подключается через соединение сокета к приложению, приложение должно отображать другую вкладку. Я все наладил, но когда я пытаюсь добавить новое Worskspace в коллекцию Views, я получаю сообщение об ошибке, которое может быть сделано только в потоке диспетчера, но диспетчера MainWindowViewModel не существует. Итак, вот мой вопрос: как добавить это рабочее пространство в коллекцию представлений?Добавление вкладок в MVVM асинхронно

здоровается и благодарит Knutman

ответ

0

Вы можете добавить свойство со следующей реализации в базовый класс VM.

public class ViewModelBase : .... 
{ 
    protected Dispatcher Dispatcher 
    { 
     get { return Application.Current.Dispatcher; } 
    } 
} 

Теперь у вас есть диспетчер в вашей виртуальной машине. Для получения дополнительной информации, пожалуйста, посмотрите here. Или вы просто используете Application.Current.Dispatcher в том месте, где вам это нужно.

+0

Спасибо, DHN, вы сделали свой день. –

+0

Добро пожаловать. Обратите внимание, что если сообщение отвечает на ваш вопрос, оно должно быть помечено как одно. ; О) – DHN

Смежные вопросы