在独立应用程序中使用WPF导航是最佳做法吗?它可以与WPF MVVM模式一起使用吗?
答案 0 :(得分:5)
要回答第二个问题,是的,WPF导航可以非常成功地使用MVVM模式。
就第一个问题而言,最好的答案是“它取决于”。具体来说,它取决于您尝试创建的应用程序;一些应用程序是逻辑上的“导航”应用程序,其中用户期望以某种方式浏览一系列屏幕,而其他应用程序具有不同的范例。我能给你的最好的建议就是不打击它 - 如果你的应用程序在导航环境中有意义,那么一定要使用WPF导航,但如果没有,那就不要试图把它变成一个。
确定您的应用程序是否使用导航范例的最佳方法可能是后退按钮是否有意义;如果是,那么你将需要使用Frame或NavigationWindow,以便您可以使用内置的WPF导航支持。
答案 1 :(得分:1)
我认为System.Windows.Navigation尚未为生产应用程序做好准备。我发现如果你需要在页面之间传递数据,在WPF4应用程序中使用它是一种令人沮丧的经历。
我还遇到了导致databinding to fail after using back or forward navigation的严重错误。
MVVM,MVC和MVP样式应用程序存在许多WPF工具包和框架。实际上,所有这些都取代了Microsoft提供的Hyperlink,Page,Frame和Journal类以及定制的导航服务。因此,开发者社区似乎给了System.Windows.Navigation一个“不信任投票”。 希望将来能够改进对导航式应用程序的支持。
如果您的应用程序适合导航隐喻,则可能值得研究这些替代框架。 (当然,这些工具包有与它们相关的学习曲线。)
我自己一直在寻找解决这个问题的好方法。