处理 WPF 应用程序中多个视图之间的导航

Posted

技术标签:

【中文标题】处理 WPF 应用程序中多个视图之间的导航【英文标题】:Handle navigation between several view in a WPF application 【发布时间】:2011-08-23 07:14:00 【问题描述】:

我过去做过几个 WPF 应用程序(不使用 MVVM),我总是在视图之间实现自己的导航系统(实例化一次视图,然后加载到容器组件中,刷新所需的组件我的看法)。

有效,但是:

它始终是定制的,所以如果新开发人员来了,他必须了解它是如何工作的 我很确定这不是最优化的(大部分事情都没有在后台工作人员中完成,...) 这是浪费时间

所以我想知道是否有官方的方法来处理这个问题?我不知道具体怎么做,但我在想一个导航组件,它可以有点像选项卡面板,或者有点像 asp.net 中的 MVC 框架,我们可以为一个动作和一些参数调用一个指定的控制器.

当绑定不在当前视图中时可能会停用它们

【问题讨论】:

【参考方案1】:

您可以使用 DataTemplates/Styles 来自定义控件的内容(不仅是外观,还有数据,因为我想这是您所要求的)

http://msdn.microsoft.com/en-us/library/ms742521.aspx

您可以拥有一个主机控件,并在运行时根据事件/状态更改其外观。

像一个例子可以看看这里: http://code.google.com/p/svnradar/ 这个程序如何管理存储库信息的组和平面视图的外观。

另一个例子: 乔什·史密斯的豆荚

http://joshsmithonwpf.wordpress.com/2008/03/05/podder-v2-has-been-released/

希望这会有所帮助。

【讨论】:

它并没有真正告诉我是否有管理界面之间导航的标准方法。就像我说的,我已经用自定义导航系统构建了一些应用程序(使用事件,...),但这不是我想要的 “标准方式”是使用模板并在运行时绑定它们,这一点很重要。【参考方案2】:

您可能对Lakana 感兴趣,这是一个轻量级(但功能强大)的框架,可以为您处理所有导航问题!

丽安娜

【讨论】:

以上是关于处理 WPF 应用程序中多个视图之间的导航的主要内容,如果未能解决你的问题,请参考以下文章

WPF MVVM 在按钮单击时在视图之间导航

在 MVVM WPF 应用程序中处理导航

关于使用 Caliburn.Micro MVVM WPF 进行视图导航的建议

多个视图模型之间状态共享的具体示例(WPF MVVM)

页面(视图)之间的 C# WPF 导航

WPF、MVVM、导航、保持依赖注入完整