0

我有一个主 ViewModel 和一个 UserLoginViewModel。从用户视图模型中,我需要显示带有确定/取消选项的提示。我已经按照此链接 http://www.deanchalk.me.uk/post/WPF-MVVM-e28093-Simple-e28098MessageBoxShowe28099-With-Action-Func.aspx中的说明完成了它。为了避免无效的跨线程异常,我使用了调度程序。代码是这样的

  mainDispatcher.BeginInvoke(new MessageBoxDelegate
                  (
                      (message, title) => { Popup(msg, ""); }
                  ), messageArgs);

其中 mainDispatcher 是 MainView 的调度程序,而 Popup 是类型 Func<string, string, MessageBoxResult>

它工作正常。问题是我无法从BeginInvoke方法中获得结果。有没有办法从BeginInvoke方法中得到结果?如果没有,有什么建议我可以如何实现?

4

2 回答 2

2

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

于 2012-06-26T07:55:47.257 回答
0

显然你得到的结果是var result = Popup(msg, "");

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

于 2012-06-28T09:34:44.420 回答