2010-10-19 77 views
5

我們的遺留應用程序之一是在VB.net(3層)中運行,DataTable用作DTO。但我們想要使用WPF,MVVM架構來轉換應用程序。我可以使用Datatable作爲DTO來實現MVVM嗎?或者我必須創建類來表示這些數據表並實現MVVM體系結構。 ?使用DataTable的MVVM?

回答

2

MVVM中沒有任何東西排除使用DataTable/DataSet作爲模型。 MVVM中的'M'可以是任何事情。這是更清晰定義的V和VM。只要讓ViewModel充當View和底層DataRow的中介。它不應該比您的模型生成Web服務類更復雜。

+0

k,thnx。在Class中,我們可以實現INotifyPropertychanged,甚至可以編寫回調,強制等。但是在Datatable或DataRow中,我們如何識別更改通知?這就是我要求提出這個問題的原因 – 2010-10-19 05:46:34

+0

DataTable有一個可以使用的RowChanged事件。但是你可能不需要使用它。 ViewModel可以根據需要引發PropertyChanged事件。如果ViewModel控制進出DataRow的數據,則DataRow不應該在ViewModel下方更改。 – Josh 2010-10-19 05:54:51

1

研究MVVM中使用貧血型與富型模型之間的差異。在貧血模型中;這是您使用數據表獲得的內容,您可以實現屬性並掛接虛擬機中的所有INotify事件。如果您使用豐富的模型路線(例如構建自己的業務對象或使用CSLA等框架),則可以從模型中獲得更多的操作,並且您的VM更小/更簡單。