誰能告訴我在WPF中使用命令vs事件的優點嗎? 命令或事件是否運行到內存泄漏? 什麼是最快的方法。它們的缺點是什麼?WPF命令vs事件優點/缺點
回答
命令提供了事件處理兩大好處:
- 命令不掛 來電者,因此相同的命令不 依賴,可以從 菜單,工具欄按鈕,鍵盤被調用, 等
- 命令提供 支持啓用/禁用基於 命令的狀態的所有相關的UI 對照(可以執行或不)
我更喜歡在實際項目中使用命令,特別是如果您想使用M-V-VM。
我還沒有聽說任何與命令有關的內存泄漏。
事件可能會更快,但差異不應該很大 - 我在我的項目上使用了兩年的命令,並沒有任何性能問題。
有關命令的詳細信息,請參閱Commanding Overview(archive)(v4)
命令是整合事件更標準的方式。它可以比事件更有用,因爲藉助它們,您可以定義單個任務(命令)並從不同的地方使用它。例如你可以定義一個保存命令並使用一個菜單項,一個上下文菜單項和一個按鈕來同時使用它。這樣你可以集中任務。還有命令支持數據綁定,這是WPF應用程序非常強大的功能。據我所知,命令會導致某些類型的內存泄漏,但您可以通過使用許多解決方法來避免這種情況。我必須補充一點,MVVM設計模式也使用命令作爲設計WPF應用程序的標準方法。處理事件要簡單得多,但命令提供了許多強大的設計。但是現在你必須不能總是使用命令而不是事件。有許多地方你只能使用事件。
此外WPF4.0允許綁定到命令定義。這使得從視圖模型公開命令變得更加容易,極大地幫助您將邏輯與UI關注區分開來。
你能詳細說明一下嗎? – MarqueIV 2017-03-14 20:46:37
命令是路由事件。
雖然命令和事件可以重疊,但它們是兩回事。命令說「做這個!」,而事件說「這剛剛發生!」。 所以你可能有一個CloseWindowCommand來關閉一個窗口,但是窗口可能有一個ClosingEvent來告訴正在關閉的訂閱對象。
- 1. php imagecopyresized vs imagecopyresampled vs imagecopy優點/缺點
- 2. flux vs redux優點和缺點亮點
- 3. ListView vs嵌套佈局[優點/缺點]
- 4. 類庫項目VS App_Code - 優點/缺點?
- 5. Casting UserControl ASP.control_name_ascx vs Control_Name - 優點/缺點?
- 6. Web服務vs DLL;優點和缺點?
- 7. Web服務vs WCF,優點和缺點
- 8. Python:_mysql vs MySQLdb的優點和缺點?
- 9. IDataReader vs DataTable;優點和缺點
- 10. WS發現vs. SSDP - 優點和缺點
- 11. GWT vs. ScriptSharp優點和缺點
- 12. 命名查詢優點和缺點
- 13. StyleCop,優點/缺點
- 14. VueFire vs Vue.js + Node.js vs Vue.js +羽毛的優點,缺點和區別
- 15. Web服務vs EJB vs RMI,優點和缺點?
- 16. wcf配置文件vs代碼配置的優點和缺點
- 17. WPF:使用WPF UserControl的優點/缺點是什麼?
- 18. 休息vs Wcf的優缺點
- 19. 卡夫卡vs兔MQ的優缺點
- 20. AppSettings vs applicationSettings的優缺點(.NET app.config/Web.config)
- 21. WPF命令/點擊參數
- 22. 事件驅動的CMS - 優點和缺點
- 23. C#:事件或觀察者界面?優點缺點?
- 24. .htc文件的優缺點
- 25. 衛星組件 - 優缺點
- 26. 解析INI文件的優點/缺點
- 27. 頭文件的優點/缺點
- 28. SSIS包:優點 - 缺點
- 29. 使用≠like!=優點/缺點
- 30. Three20的優點和缺點
你不能訂閱相同的事件處理程序到工具欄按鈕,鍵盤等嗎?這些看起來像是爲你的代碼添加了一層複雜的代碼tbh。 – 2017-01-04 04:05:41
更好的理由是事件處理程序只能在代碼後面進行管理,您不能簡單地將其移動到ViewModel。命令提供鬆耦合。 – 2017-01-12 23:21:05