嗨,也许我来得太晚了,因为距离你第一次发帖已经 8 个月了...
我在 silverlight mvvm 应用程序中遇到了同样的问题。我找到了这样的解决方案。对于我拥有的每个模型和视图模型,我还有一个名为控制器的类。
像这样
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;
这对我的申请有所帮助。也许它也可以帮助你......