2010-05-14 53 views
0

我見過很多MVVM的例子。我可以看到View應該引用ViewModel。我最近見過一個ViewModel引用View的例子,這對我來說似乎是錯誤的,因爲它會導致更緊密的耦合。鑑於ViewModel經常被描述爲View和Model之間的媒介,ViewModel比Facade對象更多嗎?我希望我在這裏正確使用「門面」一詞。MVVM模式中的ViewModel引用應該使用哪些類型的對象?

回答

1

從技術上講,視圖模型應該引用模型,但從來沒有視圖。該視圖應綁定到視圖模型,並且視圖模型應該使用模型中的數據公開方便的屬性。

顯然,視圖模型的複雜性取決於應用程序和模型中的數據。但將其視爲「門面」並不是非常有害的(儘管開發人員的術語不完全正確)。

4

你的直覺是對的; ViewModel不應該引用視圖。

請注意,這是一個「應該」。純粹主義者說,ViewModel甚至不應該引用WPF的東西,如the Visibility enumeration,但我不同意。除此之外,ViewModel應該可以幫助您分離問題並提高代碼的可讀性。如果你不得不跳過這些環節以避免引用某些屬於視圖的內容,這表明你可能會過度使用它。

+0

+1爲崇尚實用主義:) – kiwipom 2010-05-16 09:14:12

相關問題