我在WPF NavigationWindow中托管了一个小样本应用程序。 它有三个页面(A,B,C),用户可以使用三个按钮:导航窗口的后退和前进以及第一页的下一个。
第一页A包含两个单选按钮。根据用户选择的按钮,下一步按钮将导航到页面B或页面C.
问题是当用户使用NavigationWindow上的Back按钮时,更改第一页上的选择并点击Forward按钮而不是Next按钮。下一个事件处理程序将重新评估逻辑并移动到正确的页面,但Forward按钮只是从前向堆栈中获取一个页面。
在这种情况下,建议采取什么行动?我在MSDN上找不到这种情况的任何细节。我认为解决此问题的最简单方法是在用户更改第一页上的选择时清除前向堆栈,以便只有“下一步”按钮可用。不幸的是我不知道该怎么做。
答案 0 :(得分:3)
尝试解决非常类似的问题。还没有让它工作,但我正在寻找WPF PageFunctions。
您可以通过以下链接找到页面功能的详细说明,以及我看到的WPF导航的最佳概述
http://www.paulstovell.com/wpf-navigation
您也可以使用导航事件处理程序来抑制前向导航。见When is NavigationService initialized?