這是我第一次嘗試MVVM。我的應用程序的核心是基於鬆散的Josh Smith的msdn文章。而且我也使用mvvm light框架。wpf mvvm使用命令在視圖模型之間傳遞參數
我有一個主窗口,其中包含一個命令列表區和一個工作區,它將用戶控件/視圖顯示爲tabitems,每個用戶控件都有一個相應的視圖模型。 mainWindow也有一個包含我的命令列表的視圖模型,而工作空間視圖模型有一個基本工作空間視圖模型。
我的默認視圖有一個MappingSets主數據網格,可以有一個選定的項目。這些命令啓動新的tabitems,其中包含基於所選項目處理MappingSet細節的視圖。我有一個View/ViewModel,根據使用的命令應該返回一個tabitem用於創建一個沒有現有數據的新MappingSet,或者一個tabitem包含所選項目的細節以供編輯,或者一個tabitem包含選定項目的詳細信息新的MappingSet的基礎。
在設置場景之後,我沒有設法解決的方法是傳遞參數的命令相關方式,例如所選MappingSet對象的標識符,以上述三種狀態之一實例化我的viewmodel?例如,mvvmlight messenger會適合這項任務嗎?
我的解決方案將Messenger將數據提供給包含命令的mainWindow View模型,然後將其作爲參數傳遞給該命令啓動的ViewModel。所以結合史蒂夫和邁克的答案。 – 2011-01-13 03:10:59