2010-09-02 45 views
0

幾個星期前,我在MSDN雜誌中遇到了this article,其中談到了MVVM。其中突出的一點是DynamicViewModel類。它解決了使用MVVM模式的應用程序常見的代碼重複問題。您如何看待DynamicViewModel類?

所以我想知道有沒有其他人試過使用它?你怎麼看呢?看,儘可能聽起來很淺,當ViewModel完全依賴動態屬性訪問時,導致它失敗的原因之一就是缺乏智能感知。正因爲如此,我通常傾向於回頭使用「代碼重複」,而不是在我的ViewModel中實現一個CLR屬性。

此外,我不確定使用此類的性能受到什麼影響。任何人有想法?

謝謝。

回答

2

你對智能感知的直覺比你想象的要深刻。

實際上,視圖模型是除了名字以外的所有界面。通過選擇要在視圖模型中實現的屬性的子集,您明確定義了域對象公開給視圖的接口。至少以這種方式使視圖模型變爲動態的,就放棄了這個決定點。它表示任何設計視圖的人都可以決定域模型的哪些屬性直接暴露給用戶。

我不知道這樣做不好,但我確實知道如果不仔細考慮就不好做。

這是隱含的一切,使我對這種方法最感興趣。在我看來,您可能希望在某個地方列出一個域屬性列表,以確保面向用戶。手工實現整個視圖模型是維護此列表的一種笨拙方式,但它的方式是a