我有一个主ViewModel和一个UserLoginViewModel。在用户视图模型中,我需要显示Ok/Cancel选项的提示。我已经完成了这个链接http://www.deanchalk.me.uk/post/WPF-MVVM-e28093-Simple-e28098MessageBoxShowe28099-With-Action-Func.aspx。为了避免Invalid-cross线程异常,我使用了一个调度程序。该代码是这样的在MVVM WP7应用程序中显示提示
mainDispatcher.BeginInvoke(new MessageBoxDelegate
(
(message, title) => { Popup(msg, ""); }
), messageArgs);
其中mainDispatcher是的MainView的调度和弹出式的类型是Func<string, string, MessageBoxResult>
的,它工作正常。问题是我无法从BeginInvoke
方法中获得结果。有没有办法从BeginInvoke
方法中获得结果? 如果没有,我有什么建议可以实现这个?
BeginInvoke的梅索德返回不包含任何结果类型的DispatcherOperation的对象。 –
你不关心BeginInvoke的结果。你关心Popup()的结果。你得到并评估这个结果INSIDE BeginInvoke。 –
谢谢,这解决了我的问题。我使用了回调函数,并让线程等待直到获得结果 –