我有一個主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。 –
謝謝,這解決了我的問題。我使用了回調函數,並讓線程等待直到獲得結果 –