具有几乎相同设计的三个GUI从不同的应用程序菜单启动,所有这些GUI都将具有:
当然还有几个搜索按钮等。
假设菜单名为添加新A ,添加新B ,添加新C 。
点击添加新的时,它应该启动" base / parent"具有上述组件的GUI。
单击添加新B 时,它应该启动与基础相同的GUI,除了它还应该有几个单选按钮。
添加新C 也是如此,只有差异是几个简单的控件。
如何使用WPF有效地完成此操作?我应该设计一个包含所有元素的GUI并隐藏例如radiobuttons如果从"添加新A"?
开始或者我应该使用三种不同的XAML,最终大多数代码和设计元素是相同的。
答案 0 :(得分:0)
或者我应该使用三种不同的XAML,最终大多数代码和设计元素是相同的。
我认为这取决于你是什么,并尝试用图形表示。当我使用颜色选择器时,我创建了多个控件,这些控件都包含相同的控件,但不同的属性和转换算法。在我见过的大多数MVVM实现中,确实是这样做的。
您可以考虑的另一件事是制作一个基本UserControl,例如Panel
,其中包含所有UserControl所需的所有控件和属性,然后创建后续UserControl,如CalendarPanel
或{{1} },它基于NotebookPanel
,但指定了新的控件和属性。
这方面的一个例子可以在这里找到: How can a WPF UserControl inherit a WPF UserControl?
一开始学习起来很复杂,但是一旦掌握了它就会变得非常有趣:)
答案 1 :(得分:0)
如果所有三个视图都可以包含单一视图模型,则将模式enum
添加到视图模型中,并基于此enum
显示/隐藏视图中的某些部分。这种方法最容易测试和维护。
有时候,应用程序中的某些地方应该看起来相似,但具有不同的视图模型。然后我建议将这些视图模型拆分为可以共享的较小模型。然后,您就可以从较小的共享组件中构建视图。