2013-08-19 3 views
1

Я использую диспетчеру в одном из моего WPF кода позади, но сейчас движется весь код позади, чтобы MVVM шаблон с ниже код:Диспетчер в WPF ViewModel класса

this.Dispatcher.BeginInvoke(new Action(() => CallEmployee())); 
Thread.Sleep(100000); 

но то же не доступен из ViewModel класса файл. Я попробовал

System.Windows.Threading.CurrentDispatcher.BeginInvoke(new Action(() => CallEmployee())); 
Thread.Sleep(100000); 

но его не называя CallEmployee способ.

+0

'Thread.Sleep (100000);' ???? Что-то очень плохое происходит здесь. – Will

ответ

3

Если ваш ViewModel находится в сборке, которая ссылается WindowsBase.dll и PresentationFramework.dll, то вы можете сделать:

System.Windows.Application.Current.Dispatcher.BeginInvoke(...);

В противном случае, вам нужно абстрагироваться диспетчеру, вероятно, с помощью некоторых интерфейсов и фабричной модели или IoC или что-то еще.

+0

спасибо, что это сработало. – user2519971