我的应用程序有3个页面(一个MainWindow和2个页面,在这些页面中进行简单的选择)。在同一个窗口WPF中切换视图而不创建页面的新实例
当前我使用以下导航结构在页面http://azerdark.wordpress.com/2010/04/23/multi-page-application-in-wpf/之间切换。 它基本上使用一个接口来传递一个页面的引用并创建新的实例。
这个想法是我一次只能打开1个窗口。例如,当我从页面A导航到B时,B将替换A的内容。订单始终为A→B→C→A(返回主窗口)或A→B→A。
换句话说,所有内容都会一直显示在1个窗口中。 使用我当前的解决方案,我遇到了问题,我每次切换时都会实例化页面的一个新实例(例如A→B→A具有2x New PageA()作为结果)
在必须使用大量的静态方法和类的,我真的不喜欢。
是否有这更好的解决方案,不要求我的当前应用程序的导航结构的整个大修?
在我目前的解决方案我使用一个静态的ObversableCollection列表来记住一些动态创建的控件,所以当我回到页面A(mainWindow)时,一切都保持不变。
在此先感谢。
我可能是错的,但是当'this.Content = nextPage;'被执行时不会使当前页面超出范围并被垃圾收集器清除,因此实际上不会有同一页面的多个实例。您使用的解决方案对我来说似乎相当不错 – 2012-04-17 18:16:40