c# - WPF如何设计一个多窗口应用程序?

标签 c# wpf mvvm

我正在寻找一些技巧和提示,我如何以一种好的方式来建立我的应用程序。

因此,这里有一些信息:目前,我的Mainwindow设计有一个可容纳4个框架的网格。它看起来像这样。

顶部是一个菜单,可让您选择不同的页面。我的主要区域大约有8页设置页面和4个内容页面。侧边栏显示一些其他信息,用户可以选择这些信息,并且当其中一个内容页面打开时,底部仅显示一个页面。
因此,我的内容页面后面有ViewModels来填充它们,并在我了解它们的所有功能时尝试在不久的将来使用命令;)。因此,我尝试使用MVVM方式,但是在这方面我是非常新的。

我真的不需要像导航窗口一样的导航菜单。

那么,这样的应用程序是使用Frames的最佳方式还是有更好的解决方案?

最佳答案

框架支持WPF的内置导航基础结构,因此,如果您打算使用框架,它们是一个不错的选择。它确实存在一些问题(至少包括我在内,至少有人这样认为),但是对于简单/小型应用程序来说,它就可以了。当然,如果您像我通常那样滚动自己的轻型导航系统,它们也将起作用。我通常通过以下方式进行导航:发送ViewModels实例,并将其设置为窗口或内容控件的内容,然后让DataTemplates根据 View 中的定义“修饰”它们。对于较大的项目,我总是推荐一个很棒的框架,其中包括Prism或Magellan等导航系统。

基本上,这一切都取决于您的要求。有很多方法可以解决问题。尝试使用MVVM很好,请坚持使用它,它通常会自动为您提供指导。

我建议您使用AvalonDock之类的停靠库来为您的应用程序增添色彩……但是,我对它的体验很痛苦,因为它对不是 MVVM友好。我最近花了一个星期的大部分时间进行了角力,以使其在MVVM场景中足够可用,但我不确定是否可以做到。可能还有其他库可以更好地处理事情,但是(功能齐全,例如在Visual Studio中)停靠是一件复杂的事情,因此也许不要去那里。抱歉,在AvalonDock遇到挫折后,我可能感到需要发泄。

关于c# - WPF如何设计一个多窗口应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3733483/

相关文章:

c# - 如何检查来自 Web Reference 的传入 XML?

c# - WPF 新增功能 - 更新代码中的 TextBlock 导致 NullReferenceException

java - Android 架构组件和 MVVM 的错误处理

wpf - ViewModel 定位器如何在模块化系统中工作

c# - 如何将动态 'where' 子句添加到 linq 查询?

javascript - 在单击函数上将模型值传递给 @Html.CheckBoxFor

c# - Amazon S3 中的重复文件

c# - WPF 中的绑定(bind)字典

c# - 误解数据绑定(bind)基础知识和 DataContext——说来话长

wpf - 如何使用 MEF 和 MVVM 将 PRISM 模块添加到工具栏