2016-01-26 122 views
0

我有許多視圖模型,用於測試應用程序的各個部分。從另一個視圖訪問一個視圖模型

一個視圖模型用於用戶設置(默認目錄,SQL Server,SQL數據庫等),名爲MainSettingsViewModel。它包含一個MainSettings模型的實例,其中包含配置詳細信息。

另一個視圖模型包含ObservableCollection中的計算機列表(其中包含ComputerNameComputerDatabase,計算機同步時間等信息)。

另一個包含網絡設備(名稱,位置IP等)的詳細信息。

現在我需要使用這些不同視圖模型中的所有上述信息執行任務。例如,我想ping NetworkDevices視圖模型中的每個網絡設備,並將結果發送到MainSettings視圖模型中的文件,然後通過每個計算機視圖模型進行通信並執行一些測試。

我遇到的問題是這些視圖模型是在各自的視圖中構建的,並且沒有任何方式可以相互交流他們的信息。

我的視圖模型應該如何相互通信?

+0

我建議您在開始項目之前閱讀更多MVVM模式。您顯然將模式與某些對象或基類混淆,沒有「多個MVVM」,您可能具有ViewModel,Model(作爲圖層或對象)和View。 「模型」還包括您的業務邏輯,即服務和存儲庫,而不僅僅是POCO類描述您的數據結構 – Tseng

+0

感謝Will和Tseng,當你這樣說話時,術語顯然更有意義。我會盡量多學習一些。 –

回答

0

每個視圖模型將需要一個參考,它需要如果你擁有它可以實例其他視圖模型,因爲它需要他們一個「主」視圖模型與

通信的任何其它視圖模型,並通在構造函數中引用它的self。這些虛擬機可以將構造函數中的引用保存在專用字段中,並根據需要調用公共方法。

相關問題