大约30年前,我开发了一款适用于新鲜水果包装机的大型应用程序。我遵循了一个很好的范例,取自Informix-4GL:同一个屏幕允许用户通过示例设置"查询"或者插入新的"记录",或者在成功之后更新其中一个。它保持了目前的清单" (生成的查询结果和添加的新记录)可以与PgUp和PgDwn Keys一起使用。当然,所有这些东西都表示为映射文本。 非常重要的是屏幕处于空闲状态,直到用户执行了一个"命令"启动新查询,插入或更新(甚至删除)操作。 现在,是进化该应用程序的时候了。 我在Wpf及其Preview *路由事件组中思考,以捕获主要用户"命令"。 但是因为有很多屏幕(数据库中每个实体都有一个屏幕),所以设置它们之间的共同点非常重要。 这是设置一个或两个超级班级的最佳方式(在Wpf中)" Windows的这种方法? TIA
答案 0 :(得分:1)
从技术上讲 - 确定,您可以创建一个继承自System.Windows.Window的类,让应用程序中的所有窗口都从该窗口继承,并在该类中实现一些通用逻辑。
但是,这种方法不被视为WPF和其他基于XAML的平台的最佳实践。您的窗口和其他GUI类应仅包含特定于演示的代码。处理数据库查询的模型类不应该依赖于用于呈现这些模型的确切GUI。
虽然不是必需的,但是第三方MVVM库对例如有用。为IDE提供设计时模型。至于特定的库,最近我更喜欢Caliburn Micro,在此之前我对MVVM Light有积极的经验。
使用MVVM,可以使用基本模型类,其中包含一些在不同模型类中通用的逻辑。事实上,许多图书馆都鼓励你这样做。他们为您的模型提供自己的基类。例如来自Caliburn Micro的Screen或PropertyChangedBase。