大約30年前,我開發了一款新鮮水果包裝機的大型應用程序。我遵循了一個很好的範例,取自Informix-4GL:同一屏幕允許用戶設置「通過示例查詢」或插入新的「記錄」,或者在成功之後更新其中的一個。它保留了一個「最新列表」(由此產生的查詢結果和添加的新記錄),可以使用PgUp和PgDwn Keys進行劃分。當然,所有這些東西都被表示爲映射文本。 非常重要的是,屏幕一直處於空閒狀態,直到用戶執行「命令」來啓動新的查詢,插入或更新(甚至是刪除)操作。 現在,該發展該應用了。 我在Wpf及其預覽*路由事件組中,想抓住主要用戶的「命令」。 但是因爲有很多屏幕(對於數據庫中的每個實體都有一個屏幕),設置它們之間的共同點很重要。 這是最好的方式(Wpf)爲這種方法設置一個或兩個「超類」的Windows? TIAWpf Window「super class」
0
A
回答
1
從技術上講,您可以創建一個繼承自System.Windows.Window的類,讓您的應用程序中的所有窗口都繼承該類,並在該類中實現一些公共邏輯。
但是,這種方法並不被認爲是WPF和其他基於XAML的平臺的最佳實踐。您的窗口和其他GUI類只應包含特定於演示文稿的代碼。處理數據庫查詢的模型類不應該依賴於用於呈現這些模型的確切GUI。
雖然不是必需的,但第三方MVVM庫對於例如爲IDE提供設計時模型。至於特定的圖書館,最近我更喜歡Caliburn Micro,在此之前我對MVVM Light有過正面的經驗。
對於MVVM,可以使用一些基本模型類,並在不同模型類中使用一些常見邏輯。事實上,許多圖書館都鼓勵你這樣做。他們爲您的模型提供他們自己的基類。如來自Caliburn Micro的Screen或PropertyChangedBase。
相關問題
- 1. 爲什麼「[self class] == [super class]」?
- 2. WPF Base Window
- 3. Scala getClass match on super class/trait
- 4. WPF Window unclickable
- 5. StackPanel/Window width change WPF
- 6. WPF Adorner Layer Outside Window
- 7. 瞭解WPF派生WIndow類
- 8. Stuck in Tutorial Doctrine2:「class Product is not a valid entry or mapped super class」
- 9. RegisterClass for window class returned「file already exists」error
- 10. 如何在Window的子類事件中的Pyglet中使用super?
- 11. WPF中的Window StateChanging事件
- 12. WPF Window無法加載UserControl
- 13. wpf borderless window focus not firing
- 14. ReSharper的提供從Window類在WPF
- 15. WPF:風格不適用於Window子類
- 16. 更改「super/base」風格的屬性wpf
- 17. WPF在AdornerLayer或Window之外移動Adorner
- 18. Java super()繼承
- 19. 調用SUPER :: new()
- 20. ViewDidLoad super
- 21. OnClickListener super
- 22. 行爲super`
- 23. Backbone,TypeScript和super
- 24. Java ASM4:super(ASM4);?
- 25. 爲什麼需要[super loadView]或[super viewDidLoad]?
- 26. 如何將實例傳遞給WPF Window類?
- 27. 爲什麼C++不能使用「super class」類型的右值初始化「derived class」類型的變量?
- 28. Super object codeigniter
- 29. Window ActualTop,ActualLeft
- 30. super(context,textviewid); java.lang.NullPointerException
如果原始應用程序位於Informix-4gl中,並且您正在尋求「發展該應用程序」,爲什麼不使用某些工具,例如Genero還有其他的,這將允許你的應用發展到現代環境(GUI/Web/Mobile等)? –