我正在寻找一些提示和提示,以便我能够以良好的方式构建我的应用程序。
所以这里有一些信息:我目前在主窗口设计了一个可容纳4帧的网格。它看起来像这样。
顶部是一个菜单,可让您选择不同的页面。我在主要区域有大约8页,例如设置页面和4个内容页面。补充工具栏显示一些可由用户选择的其他信息,底部仅显示打开其中一个内容页面时的页面。 因此,我的内容页面背后有ViewModels来填充它们,并且当我了解它们的所有功能时,我试图在不久的将来使用命令;)。所以我试图使用MVVM的方式,但我在这方面很新。
我真的不需要像导航窗口那样的导航菜单。
对于像这样的应用程序来说,这是使用Frames的最佳方式还是有更好的解决方案?
答案 0 :(得分:1)
框架支持WPF的内置导航基础架构,因此如果您打算使用它,它们是一个不错的选择。它确实有一些问题(至少有些人这么认为,包括我在内),但对于简单/小型应用程序,它会做得很好。当然,如果你想像我通常那样推出自己的轻量级导航系统,它们也会起作用。我通常通过发送ViewModels实例并将它们设置为窗口或内容控件的内容来导航,并让DataTemplates在视图中定义它们“装扮”它们。对于大型项目,我总是推荐一个很棒的框架,其中包括像Prism或Magellan这样的导航系统。
基本上一切都取决于你的要求;有很多方法可以做到正确。你尝试使用MVVM是好的,试着坚持下去,它通常会自动引导你朝着一个好的方向发展。
我建议使用像AvalonDock这样的对接库来增加你的应用程序...但是我有一个痛苦的经验,因为它不 MVVM友好。我最近花了一周的时间来与它搏斗,使其在MVVM场景中足够可用,我不确定它是否可以完成。可能有其他库可以更好地处理事情,但(功能齐全,如在Visual Studio中)对接是一个复杂的问题,所以也许不去那里。对不起,我可能觉得有必要在AvalonDock挫折之后发泄。