Silverlight 在MVVMWP7应用程序中显示提示

Silverlight 在MVVMWP7应用程序中显示提示,silverlight,windows-phone-7,mvvm,Silverlight,Windows Phone 7,Mvvm,我有一个主视图模型和一个UserLoginViewModel。从用户视图模型中,我需要显示带有确定/取消选项的提示。我已经这样做了,在这个链接中声明。为了避免无效的跨线程异常,我使用了一个调度程序。代码是这样的 mainDispatcher.BeginInvoke(new MessageBoxDelegate ( (message, title) => { Popup(msg, ""); }

我有一个主视图模型和一个UserLoginViewModel。从用户视图模型中,我需要显示带有确定/取消选项的提示。我已经这样做了,在这个链接中声明。为了避免无效的跨线程异常,我使用了一个调度程序。代码是这样的

  mainDispatcher.BeginInvoke(new MessageBoxDelegate
                  (
                      (message, title) => { Popup(msg, ""); }
                  ), messageArgs);
其中,mainDispatcher是MainView的调度程序,弹出窗口的类型为
Func

而且效果很好。问题是我无法从
BeginInvoke
方法获得结果。是否有任何方法可以从
BeginInvoke
方法获得结果?
如果没有,有什么建议可以实现吗?

我不确定它如何适合MVVM模型,但我建议您使用code4fun而不是MessageBox

显然,您得到的结果是var result=Popup(msg,”)


您需要在BeginInvoke()中计算结果,因为BeginInvoke()下面的任何代码都会在BeginInvoke()之前运行。

谢谢您的建议,我将查看code4fun的MessagePrompt。但是我的问题仍然没有回答BeginInvoke方法返回一个类型为DispatcherOperation的对象,它不包含任何结果。您不关心BeginInvoke的结果。您关心Popup()的结果。您在BeginInvoke中获得并评估此结果。谢谢,这解决了我的问题。我使用了一个回调函数,让线程等待得到结果