gpt4 book ai didi

c# - 在UWP中的帧(SplitView)中导航时丢失了DataContext

转载 作者:行者123 更新时间:2023-12-03 10:22:40 26 4
gpt4 key购买 nike

我正在使用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)。

关于c# - 在UWP中的帧(SplitView)中导航时丢失了DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com