我的应用程序有 3 个页面(一个 MainWindow 和 2 个进行简单选择的页面)。
目前我使用以下导航结构在页面http://azerdark.wordpress.com/2010/04/23/multi-page-application-in-wpf/之间切换。它基本上使用一个接口来传递页面的引用并创建新实例。
这个想法是我一次只能打开一个窗口。例如,当我从页面 A 导航到 B 时,B 替换了 A 的内容。顺序始终是 A -> B -> C -> A(返回主窗口)或 A -> B -> A。
换句话说,所有内容始终显示在 1 个窗口中。使用我当前的解决方案,我遇到的问题是每次切换时都会实例化一个新的页面实例(例如 A -> B -> A 有 2x New PageA() 结果。
这反过来导致不得不使用很多我不太喜欢的静态方法和类。
有没有更好的解决方案,不需要对我当前的应用程序导航结构进行全面检查?
在我当前的解决方案中,我使用静态 ObversableCollection 列表来记住许多动态创建的控件,因此当我返回页面 A(主窗口)时,一切都保持不变。
提前致谢。