假設其中一個ViewModel接收一些相當通用的命令(也可以從其他ViewModel執行,例如「stop ftp server」)。我該怎麼辦?如何執行命令?通過單身實用程序方法或通過OnPropertyChanged?
- 傳播完成
OnPropertyChanged
事件容器,在一些頂層視圖執行命令(MainWindowViewModel
) - 通過一些「單獨服務層」級到每個
ViewModel
,直接在ViewModel
執行靜態方法,像Utils.StopFtpServer()
- 其他?
視圖應負責儘可能少的與視圖無關的應用程序邏輯。 FTP服務器與View無關。但我個人不喜歡單身人士,所以我也不會使用這個選項。在你的例子中,我傾向於創建一個具有Stop方法的'FtpServer'類,並將它的一個實例傳遞給所有關注它的視圖模型。我也會通過依賴注入將它傳遞給這些視圖模型,所以我可以在將來替代它的實現。視圖模型如何知道停止是另一個問題,你 - 你能解釋一下嗎? –
目前還不清楚你試圖達到什麼目的。 ViewModel如何接收命令「Stop ftp server」? –
嗯爲什麼View Model會收到這條消息,除非它特別關注它 - 在這種情況下,有人也會聽命令。 –