Model-View-ViewModel(MVVM)方法似乎是WPF UI開發中的領跑者模式。幾乎我讀過的每篇文章都暗示這是最佳做法。 RelayCommand或DelegateCommand的用法在許多文章中也很突出,似乎不使用任何一種(或任何其他變體)來實現MVVM幾乎是不可能的。那麼爲什麼他們不是.NET 4的一部分呢?爲什麼RelayCommand或DelegateCommand不是WPF的一部分?
我知道RelayCommand的實現起來非常簡單,許多第三方工具包已經擁有它,但我只是想知道爲什麼微軟會拋棄一些如此基本和基本的東西來實施所謂的「最佳實踐「?
我真的沒有看到他們違反了MVVM所做的任何承諾。 MVVM最終都是關於解耦的,例如從視圖和它背後的邏輯,而這些命令實現了完美。無可否認,SRP是最重要的原則之一,但您必須小心放置R的位置。對於我來說,RelayCommand的響應性是提供一種執行某種事件的方式來響應事件,並且我喜歡將虛擬機本身就有一些東西,所以命令只有一個依賴關係(虛擬機)。否則,該命令可能會依賴於引入更緊密耦合的一個或多個對象。 – stijn
......但這一切都取決於確切的情況。我也有很多不依賴於虛擬機的RelayCommands,但只是將一個事件發佈到EventAggregator左右。在這種情況下,將請求轉發給虛擬機將是瘋狂的。 – stijn