哪個更好地使用性能? 轉換器的限制與觸發器相反,反之亦然。 我應該限制轉換器的使用,因爲它會導致類爆炸?WPF觸發VS轉換器
7
A
回答
0
對於相似類型的輸出,與Converter
相比,Triggers
的性能更好。 雖然,conveters
是可取的,你希望你的開發是TDD,因爲你可以爲你的轉換器代碼編寫單元測試。 Converters
可用於編寫複雜的轉換,有時不可能使用觸發器。 對於複雜轉換Converters
可以減少代碼而不是編寫Triggers
系列。
5
如果您正在進行TDD開發,那麼使用轉換器將是更好的選擇。
如果沒有複雜的業務邏輯或自定義邏輯要應用,那麼去觸發器。關於轉換器還有一件事是,按照Laurent Bugnion(MVVM Light的創建者)的說法,使用轉換器會導致性能下降。
你可以從這篇文章中看到更多關於性能命中的見解。 DataTrigger vs databinding with converter performance wise
您可以從這篇文章中獲得更多關於何時使用觸發器以及何時使用轉換器的詳細信息。 Should I use WPF converter or trigger?
該決定可以基於您正在遵循或將遵循的開發方法進行。大多數情況下,我更願意在「WPF Viewmodel」概念中包裝視圖模型。
0
在大多數場景中,觸發器可以執行與任何轉換器相同的工作,但轉換器可以具有自定義/業務邏輯。
觸發器的一個限制是DataTriggers中的Setters只能改變UI元素的屬性;因此,您無法使用觸發器更新您的ViewModels屬性,即轉換器獲勝的地方,請記住ConvertBack方法。
總之觸發器所以只能進行單向操作,而轉換器可以進行雙向操作
相關問題
- 1. 觸發器VS轉換器
- 2. WPF觸發器
- 3. 我應該使用WPF轉換器還是觸發器?
- 4. 異步觸發器vs觸發器
- 5. WPF ControlTemplate觸發器
- 6. WPF ControlTemplate觸發器
- 7. 將wpf觸發器轉換爲silverlight的最佳方法?
- 8. WPF值轉換器在自定義事件觸發重建?
- 9. WPF擴展器觸發器
- 10. 將mssql觸發器轉換爲mysql觸發器
- 11. 將MySQL觸發器轉換爲PostgreSql觸發器
- 12. 將mysql觸發器轉換爲pl/sql觸發器
- 13. 將MySql觸發器轉換爲SQL Server 2008 R2觸發器
- 14. 將Oracle觸發器轉換爲Sql Server觸發器
- 15. WPF - 觸發器沒有觸發
- 16. selectManyMenu轉換器vs selectOneMenu轉換器
- 17. django-signals vs觸發器?
- 18. WPF值轉換器
- 19. 將觸發器從FB轉換爲MSSQL
- 20. 將對撞機轉換爲觸發器
- 21. FogBugz插件轉換爲URL觸發器
- 22. 將MySQL觸發器轉換爲SQLite
- 23. 觸發值轉換器重新評估
- 24. 驗證jQuery觸發器轉換
- 25. Jssor滑塊手動轉換觸發器
- 26. 將mySQL觸發器轉換爲TSQL
- 27. WPF樣式觸發器TemplateBinding
- 28. Wpf ListView觸發器SourceUpdate
- 29. Silverlight版WPF觸發器
- 30. WPF DatagridCell事件觸發器
這是*有趣*該怎麼回答幾乎完全一樣[這個其他(http://stackoverflow.com/a/ 11156189/540776) – superjos
哇,它已經出現在這裏:http://stackoverflow.com/questions/24607952/wpf-xaml-datatriggers-or-valueconverters-best-practice –