.net WPF应用程序布局

.net WPF应用程序布局,.net,wpf,layout,mvvm,.net,Wpf,Layout,Mvvm,目前,我们正在为我们的应用程序设计一个新的配置前端。为了让应用程序在浏览器中作为XBAP运行,我们不希望使用模式对话框。我不想讨论用户界面设计本身,但我想问一些技术问题,如果我们的方法从技术方面来说是好的。大多数使用对于WPF来说都是新的,但我们熟悉MVVM模式,我们的主要目标之一是将大部分代码从GUI中分离出来,并主要使用xmal进行UI定义 好的,现在开始我们的素描 Mainmenue:应该是一些Outlook(如treeview)来选择用户想要编辑的配置部分 取决于上下文的菜单:应根据主菜

目前,我们正在为我们的应用程序设计一个新的配置前端。为了让应用程序在浏览器中作为XBAP运行,我们不希望使用模式对话框。我不想讨论用户界面设计本身,但我想问一些技术问题,如果我们的方法从技术方面来说是好的。大多数使用对于WPF来说都是新的,但我们熟悉MVVM模式,我们的主要目标之一是将大部分代码从GUI中分离出来,并主要使用xmal进行UI定义

好的,现在开始我们的素描

Mainmenue:应该是一些Outlook(如treeview)来选择用户想要编辑的配置部分

取决于上下文的菜单:应根据主菜单中选定的项目(如功能区栏)选择菜单。它提供了诸如添加新条目或删除条目之类的功能,但也具有诸如加载配置文件之类的应用程序范围的功能

上下文:应该是主菜单中所选条目后面的数据,例如所选类别中配置条目的网格

好的,实际的概念是把一个页面分成两个框架,在左侧加载一个主菜单页面,在右侧加载第二个主菜单页面。当用户在菜单中选择某个内容时,将交换右键。但是,创建新的上下文视图并不困难,因为我们无法继承xaml ui定义。我尝试了这里描述的解决方法,但效果不太好。我们不想用C来定义UI,这将是解决这个问题的另一个方法

现在我们创建了一个新的草图来重构布局。现在我们要将主页分成三个框架,一个用于主菜单,一个用于上下文,另一个用于上下文相关的菜单。 事实上,每个上下文视图都有自己的ViewModel,我们考虑过让每个ViewModel都有一个类似于menue条目的属性,并将其绑定到应该显示上下文的menue的上下文相关menue。并且应用范围内的功能只需编程一次

现在可能的问题是,你们认为这种方法有什么缺点吗?我知道数据绑定会有点棘手


我认为阅读您的问题时遇到的主要问题是,实现细节似乎在推动UI设计,这是错误的

我个人认为你应该和你的一些用户坐下来,向他们展示一些屏幕模型。我从事用户界面设计已经有几年了,我可以告诉你,在考虑实现之前向用户展示一个概念可以节省大量时间。此外,还值得进行一次小规模的用户体验研究,以了解用户界面的每个部分的使用频率。例如,主菜单是否必须经常出现在屏幕上?是否可以将其固定在右侧,并且仅当用户将鼠标悬停在其上方时才显示

在建模方面,ViewModels请记住,ViewModels可以包含嵌套的ViewModels,并且每个ViewModel都应该按照单一责任原则承担单一责任。例如,网格中的每个记录可能都绑定到它自己的GridRecordViewModel实例,并且GridRecordViewModel包含在AllGridRecordsViewModel中的ObservableCollection中