我有一个主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
方法获得结果?
如果没有,有什么建议我可以实现这个吗?
答案 0 :(得分:2)
我不确定它是如何适应MVVM模型的,但我建议您使用code4fun的MessagePrompt而不是MessageBox
答案 1 :(得分:0)
显然,您使用 var result = Popup(msg,“”);
获得结果您需要在BeginInvoke()中评估结果,因为BeginInvoke()下面的任何代码都在BeginInvoke()之前运行。