2012-12-30 133 views
0

獲取對象實例從IoCContainer我是學生學習的MVVM,和我的工作WPF應用程序。 當我必須從ViewModel_1實例化一個ViewModel_2時,出現了我的問題。 ViewModel_2依賴於在IoC容器中註冊的XService。 所以當我問容器解決ViewModel_2,它創建它所需要的服務,其注入的構造函數,並提供視圖模型。在視圖模型

我的問題是:我一直在閱讀容器不應該被任何類引用,但管理其生命週期的引導程序,所以誰給ViewModel_1 ViewModel_2?

我能想到的唯一解決辦法是把一個懶惰的ViewModel_1的構造函數,並在需要時訪問它,但如果我有超過單個VM管理從那裏?

我希望你能幫助我。 非常感謝,新年快樂! =)

回答

0

據我瞭解,你有ViewModel_1包含財產ViewModel_2。你需要注入這個ViewModel_2 DI。在這種簡單的情況下,您可以在ViewModel_1的構造函數中注入ViewModel_2

你應該給我們介紹一下「如果我有超過單個VM管理從那裏」的更多細節。 你是什麼虛擬機?那是哪裏」?如果您發佈的代碼爲ViewModel_1ViewModel_2它將有助於瞭解您的問題。

+0

謝謝基里爾的回覆。 VM2不一定是VM1的屬性,而只是在VM1中創建並由其用來執行某些操作的VM。 我不知道如果我有更多的不僅僅是VM2 VM1中創造,我會不得不增加一個構造函數參數,每增加VM還是有一個簡單的解決方案? 再次感謝您。 – Sergio

+0

對不起,但你是什麼意思,「你可以注入ViewModel_1控制器ViewModel_2」? – Sergio

+0

*構造函數。它的拼寫錯誤 –