,但我想我明白它的總體思路。我不明白的是,如果我想打開一個新窗口,但該窗口需要來自調用者的數據,那麼將數據傳送到新窗口的最佳做法是什麼?如果我將數據傳遞給構造函數,那意味着我需要在後面的代碼中將代碼傳遞給視圖模型。我無法使用消息傳遞,因爲它不是基本數據。提前致謝。最好的初步實踐來打開MVVM光在新窗口中我是相當新的MVVM和MVVM光參數
回答
一個流行的選擇是使用將創建一個視圖/視圖模型,並顯示新視圖服務類。您的視圖模型構造函數和/或方法/屬性可以從調用者接收數據,然後在將視圖顯示在屏幕上之前將該視圖綁定到視圖模型。
這裏是一個非常非常簡單的實現DialogService的:
public class DialogService : IDisposable
{
#region Member Variables
private static volatile DialogService instance;
private static object syncroot = new object();
#endregion
#region Ctr
private DialogService()
{
}
#endregion
#region Public Methods
public void ShowDialog(object _callerContentOne, object _callerContentTwo)
{
MyDialogViewModel viewmodel = new MyDialogViewModel(_callerContentOne, _callerContentTwo);
MyDialogView view = new MyDialogView();
view.DataContext = viewmodel;
view.ShowDialog();
}
#endregion
#region Private Methods
#endregion
#region Properties
public DialogService Instance
{
get
{
if (instance == null)
{
lock (syncroot)
{
if (instance == null)
{
instance = new DialogService();
}
}
}
return instance;
}
}
#endregion
}
會請你告訴我一個基本的例子嗎?我不確定我完全跟隨你。 –
http://blog.roboblob.com/2010/01/19/modal-dialogs-with-mvvm-and-silverlight-4/ – geedubb
geedubb僅適用於Silverlight的。我在Visual Studio中建立一個WPF應用程序2010 –
- 1. MVVM光工具包:新窗口
- 2. MVVM光 - 獲取窗口實例的PropertyChange
- 3. MVVM Light WPF打開新窗口
- 4. MVVM使用相同ViewModel的新窗口
- 5. 動態彈出窗口MVVM光WPF
- 6. 我在MVVM光工具包
- 7. Android MVVM光轉換
- 8. 綁定與MVVM光
- 9. MVVM光與ASP.Net MVC?
- 10. MVVM光目標RaisepropertyChanged
- 11. MVVM光和撤消/重做?
- 12. MVVM光Createing和所需
- 13. 棱鏡Mvvm Mef交互性打開窗口新實例
- 14. Moqing MVVM光的IMessenger的
- 15. Silverlight 5 MVVM最佳實踐
- 16. MVVM光xamarin結合的ListView
- 17. MVVM光使者的ViewModels
- 18. 如何處理使用MVVM打開和關閉新窗口?
- 19. 使用MVVM與MVVM從主窗口打開子窗口的問題
- 20. 用MVVM打開多個窗口使用相同的viewmodel使用MVVM
- 21. 什麼是MVVM中的異步? Model或ViewModel。最佳實踐?
- 22. 使用MVVM與MVVM打開一個新的對話框
- 23. MVVM光 - 消息(VS「標籤友好」類)
- 24. Galasoft MVVM光窗8 ResourceMap沒有找到
- 25. MVVM光線程示例
- 26. 與MVVM光工具包
- 27. 如何使用MVVM光
- 28. MVVM光工具包VerifyPropertyName
- 29. WPF MVVM光:Command.RaiseCanExecuteChanged()不工作
- 30. MVVM光SL5缺少SimpleIoc
對不起,從古老的過去,但什麼給你「我不能使用的消息意味着復活這一點,因爲它不是基本數據。」 ?我問這是因爲我正在學習MVVM,如果我處於你的情況,我會使用消息傳遞。 – lightxx
對不起它已經太久了,我記得 –