如何设计超过500页的wpf应用程序

时间:2012-03-03 08:33:45

标签: wpf architecture navigation

我有一个应用程序(医学治疗类型),其中有超过500页要浏览,并且在某些页面中进行了一些处理。我应该如何设计这样的应用程序。

目前我有一个主窗口,其中有一个框架,在框架内我嵌入这些页面,但是对于每个页面,我必须创建那么多的xaml页面(我觉得它笨重创建如此庞大的xaml数量页)。

任何人都可以建议更好的设计或方法。

3 个答案:

答案 0 :(得分:0)

听起来好像应用程序主要是文档查看器。如果这是真的那么文档可以存储在某种标记中,其中包含用于包括处理的活动内容的某种特殊触发器。

当显示页面时,应用程序将处理标记并将其转换为WPF显示格式,当检测到活动处理要求时,程序可以插入专门的用户控件或使用其他系统与页面进行交互。

答案 1 :(得分:0)

有一个专门为此类大型复合应用程序设计的框架。

框架是PRISM 4,请参阅:http://compositewpf.codeplex.com/

  

Prism提供的指导旨在帮助您更轻松地进行设计和设计   构建丰富,灵活且易于维护的Windows演示文稿   Foundation(WPF)桌面应用程序,Silverlight Rich Internet   应用程序(RIA)和Windows Phone 7应用程序。使用设计   这些模式体现了重要的建筑设计原则   作为关注点和松散耦合的分离,Prism可以帮助您   使用松散耦合的组件设计和构建应用程序   可以独立发展,但可以轻松无缝地发展   整合到整个应用程序中。这些类型的应用程序   被称为复合应用程序。

答案 2 :(得分:0)

从@Doug那里得到一个提示,看来你正在寻找一个文档查看器。在这种情况下,我认为你真正想要的只是一个“虚拟化文档”,其中只有当前呈现的页面被实例化(有点类似于虚拟化堆栈面板,这是ListBox正在使用的)。

近年来,我成为MVVM设计模式的忠实粉丝。在您的情况下,我认为在您的视图模型中您应该有一个currentPage属性(一个子视图模型),以及一个知道如何使用Binding呈现此页面的视图(即XAML) - 可能是一个数据模板。

当您在页面之间移动时,您只需更改ViewModel中的currentPage属性即可。一切都应该自动更新(一旦正确实现INotifyPropertyChanged)。如果渲染视图太慢,请考虑添加缓存机制。