2011-01-24 124 views
2

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

现在就来看看我们的草图。

的“Mainmenue”:应该有一些展望像树形视图来选择配置部分的用户希望编辑

“语境依赖Menue”:应视在“Mainmenue”选择的项目一个Menue例如一个丝带酒吧。提供诸如“添加新条目”或“删除条目”的功能。但是也具有诸如“加载配置文件”的应用程序范围功能

“上下文”:应该是“Mainmenue”所选类别中配置条目的网格。

好的实际概念是有一个页面分成两个框架,并有一个“Mainmenue”页面加载到左侧,第二个加载到右侧。当用户选择菜单中的东西时,交换正确的一个。但是,创建新的上下文视图并不是一件痛苦的事情,因为我们无法继承xaml ui的定义。我尝试了这里描述的解决方法2,但那不太好。我们不想在C#中定义我们的用户界面,这将是另一个解决问题的方法。

现在我们创建了一个新草图,以重构我们的布局。现在我们要将主页分成三个框架,一个用于“主要”,一个用于“背景”,另一个用于“背景取决于菜单”。 事实上,每个上下文视图都有自己的ViewModel,我们认为每个ViewModel都有一个像“menue entries”这样的属性,并将其绑定到“context envue menue”,该属性应该显示上下文的menue。并且只对应用程序进行一次编程。

现在可能的问题是你看到这种方法的任何缺点?我知道Databinding有些东西会有点棘手。

WPF Application Layout scetch

回答

1

我认为这遇到阅读您的问题,主要问题是,它似乎非常喜欢的实施细则正在推动UI设计,这是南辕北辙。

就我个人而言,我认为你应该和一些用户坐下来向他们展示一些模拟屏幕。我已经在用户界面设计上工作了几年,现在我可以告诉你,在考虑实现之前,您可以向用户展示一个概念,从而节省大量时间。此外,可能值得进行一项小型用户体验研究,以了解您的用户界面的每个部分的使用频率。例如MainMenue必须不断出现在屏幕上?它可以固定在右侧,只有在用户悬停时才显示?

在建模ViewModel方面,请记住,您的ViewModel可以包含嵌套的ViewModel,并且每个ViewModel都应该有一个责任(遵循单责任原则),例如,网格中的每个记录都可能绑定到它自己的GridRecordViewModel和GridRecordViewModel包含在AllGridRecordsViewModel的ObservableCollection中。