我想知道如果在MVVM中我應該設計轉換器和命令更接近視圖或ViewModels。對我來說,這是一個灰色區域,因爲它們是兩種類型的膠水物體,彌補了組件之間的差距。也許它並不重要,但我想知道Stack Overflow對此有何評論。語義上,命令和轉換器應該更接近Views還是ViewModels?
我曾經將轉換器放置在ViewModel命名空間中,因爲即使View發生更改,它們通常也是可重用的。不過,我看到越來越多的評論將它們放在視圖旁邊。見上面的答案:
Should your ViewModel expose XAML elements as properties or not?
How can WPF Converters be used in an MVVM pattern?
命令通常是由暴露的ViewModels實現UI事件,所以我把他們安置在視圖模型命名空間爲好。一個典型的例子是RelayCommands。然後我遇到了一個有趣的模式,使用Commands在主視圖和ViewModel之間顯示對話框。我發現它簡單明瞭。這個命令實際上只是一個代理,但顯然在用戶界面上。是還是不是?請參閱:
MVVM and Dialogs
Handling Dialogs in WPF with MVVM
那麼,你覺得命令和轉換器應該生活在MVVM?視圖?視圖模型?沒關係?