привет, может быть, я опоздал, так как прошло уже 8 месяцев с момента вашего первого поста ...
у меня была такая же проблема в приложении Silverlight Mvvm. и я нашел свое решение, как это. для каждой модели и модели представления у меня также есть класс с именем controller.
вот так
public class MainView : UserControl // (because it is a silverlight user controll)
public class MainViewModel
public class MainController
мой MainController отвечает за управление и связь между моделью и моделью представления. в конструкторе я создаю представление и его модель представления и устанавливаю текстовый вид представления для его модели представления.
mMainView = new MainView();
mMainViewModel = new MainViewModel();
mMainView.DataContext = mMainViewModel;
// (в моем соглашении об именах у меня есть префикс m для переменных-членов)
У меня также есть публичное свойство в типе моего MainView. вот так
public MainView View { get { return mMainView; } }
(этот mMainView является локальной переменной для открытого свойства)
и теперь я готов. мне просто нужно использовать моего диспетчера для моего UI Therad, как это ...
mMainView.Dispatcher.BeginInvoke(
() => MessageBox.Show(mSpWeb.CurrentUser.LoginName));
(в этом примере я просил мой контроллер получить мое имя пользователя sharepoint 2010, но вы можете делать то, что вам нужно)
мы почти закончили, вам также нужно определить корневой визуал в app.xaml следующим образом
var mainController = new MainController();
RootVisual = mainController.View;
это помогло мне в моем приложении. может быть, это может помочь вам тоже ...