2013-03-06 92 views
1

我正在與WPF相當一段時間了。 我使用的平臺是MVVM Light。 我必須說我不在代碼隱藏文件中添加一行代碼。是棱鏡純mvvm平臺?

最近我潛入了Prism,並且我看到很多很多例子,其中代碼隱藏(例如 數據上下文或屬性更改事件)是理所當然的。

是Prism被認爲是純粹的mvvm平臺嗎?

雖然國際奧委會執行這仍然打破MVVM規則:

[Import] 
public MainViewModel ViewModel 
{ 
    set { DataContext = value; } 
} 

回答

0

PrismMVVM的促進者,而不是平臺。遵循MVVM的原則是開發人員的職責。我懷疑有很多Prism應用程序不遵循MVVM的原則。我甚至曾在一個。

1

不,棱鏡是Composite Application平臺(如平臺是正確的名稱,可能圖書館是更好)。

您想使用MVVM的事實與Prism本身無關。你可以一起使用MVVM和Prism。

1

棱鏡是一個構建基於Microsoft推薦實踐的複雜複合應用程序的框架。 MVVM是一種實踐,另一種是模塊化的應用。這就是爲什麼你可以看到一個使用Prism但不遵循MVVM的應用程序 - 它只是模塊化結構,並且使用Prism來延遲模塊下載,包括聲明模塊等。

但棱鏡是優秀的MVVM框架本身。它提供了實現的基礎MVVM圖案:

  • 基本視圖模型 - NotifyProertyChangesBase
  • 命令 - DelegateCommand視圖模型之間
  • 通知(用於複合應用) - EventAggregator
  • 抽象對用戶通知其可以是使用 查看模型級別 - 通知
  • 尊重DI單元的原則 查看模型的測試
  • extentended映射視圖模型查看能力 - 地區

棱鏡作爲MVVM框架是沉重的小型應用程序,但它是非常強大的,可擴展的,我看到它是用棱鏡創造了良好的複合MVVM設計的應用程序。