我正在尋找一點點指導,我正在放在一起的WPF/MVVM應用程序。谷歌今天沒有幫助我。使用ViewModel公開嵌套模型
所以我有一個應用程序與一些模型(域對象)有其他模型作爲屬性。現在,我只是展開嵌套的對象,並在包含對象的ViewModel中公開屬性。
隨着我的模型變得越來越複雜,我一直在努力解決ViewModels的問題。我正朝着「合成視圖」前進,其中「包含」對象具有ViewModel,而「嵌套」對象也具有其自己的視圖模型。這也會給我一些可重用的代碼,這將是一個加號。
作爲一個超級簡單的例子,假設我有一個建築,每個建築都有一些屬性,並與像這樣的地址一起:
public class Building
{
public string Name { get; set;}
public Address Address { get; set;}
}
public class Address
{
public string Number { get; set; }
public string Street { get; set; }
}
然後,我有一個視圖模型的建設,對於地址的視圖模型(由BuildingViewModel曝光):
public class BuildingViewModel
{
public string Name { get; set; } // from model
public AddressViewModel Address { get; set; } // a wrapped instance of Address
// INPC, etc...
}
public class AddressViewModel
{
public string Number { get; set; } // originally from Building
public string Street { get; set; }
// INPC, etc...
}
因此,和未示出,我有一個BuildingView和一個嵌套AddressView。我只是簡單地使用ViewModel與數據模板。
現在,我該如何保持Address對象的同步?只要我將它們分成兩個ViewModel,我就會得到Address對象的兩個實例。在我所做的所有搜索中,我已經看到來回使用消息傳遞對象,並且提到了「Observer」模式。
我是否朝着正確的方向前進,還是錯過了一些非常簡單的事情?任何建議表示讚賞。
FWIW,我已經拼湊出自己的框架,因爲我一直對學習曲線感到厭倦。另外,迄今爲止它非常簡單。
那麼這將如何工作?我的意思是,地址字段與我的數據上下文(SQL)中的Building實例一起出現。 – 2012-08-03 15:32:08
修正的回答。 – Surfbutler 2012-08-04 07:09:01