[英]Splitview with frame and navigating to another page, back button does not work
[英]Lost DataContext when navigating back in Frame (SplitView) in UWP
我正在使用SplitView和用于导航的框架在Windows 10的C#语言中编写通用应用程序。 我有一个带有动态加载列表的侧栏,当我单击其中一个项目时,我使用菜单中的模型导航到页面,以指示应该在框架中加载哪个项目。
我遵循了以下示例: Windows-universal-samples / Samples / XamlNavigation /
唯一的区别是,每次选择具有特定ViewModel的其他项目时,仅加载一个页面,而不是具有多个页面。 我使用Autofac加载ViewModels和MyFrame.Navigate(typeof(DetailsPage), idOfItem);
加载页面。
问题是,每次导航到下一页时,似乎前一个实例丢失了,而当我向后浏览时,它将加载一个新实例。 当我在RootFrame中导航时,这种事情似乎没有发生,在Windows Phone 8.1中也没有发生。
我已经在网上寻找解决方案好几个小时了,但是找不到任何相关的内容。
有谁知道为什么会这样? 我希望我对我的问题足够清楚。
预先感谢您的回答。
您观察到的行为是正确的,并且符合预期。 您有两种选择:
您可以使用Page.NavigationCacheMode ,将其设置为Required
。 这很容易,但是可能会占用大量内存。
或者你也可以保存页面状态OnNavigatedFrom并在恢复的OnNavigatedTo 。 实际上,根据您的情况,甚至可能没有必要将状态保存在OnNavigatedFrom中,假设返回到页面时可以以与第一次访问该页面时相同的方式构造状态(您的DataContext)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.