C# UWP-导航缓存和属性在导航期间不更改?

C# UWP-导航缓存和属性在导航期间不更改?,c#,caching,navigation,win-universal-app,C#,Caching,Navigation,Win Universal App,我正在构建一个UWP应用程序,导航是这样工作的-你从第1页开始,它有一个导航选项列表。Page1将创建一个viewmodel对象,并将其传递给Page2,后者将覆盖OnNavigatedTo以将viewmodel设置为其属性之一,并调用一个内部方法来填充viewmodel的数据 当第一次导航到某个页面时,所有这些都可以工作。viewmodel已传入,数据已设置,所有内容都已正确显示。但是,当我使用不同的参数导航到第1页,然后导航到第2页时,似乎viewmodel在内部发生了更改,但显示并不能准确

我正在构建一个UWP应用程序,导航是这样工作的-你从第1页开始,它有一个导航选项列表。Page1将创建一个viewmodel对象,并将其传递给Page2,后者将覆盖OnNavigatedTo以将viewmodel设置为其属性之一,并调用一个内部方法来填充viewmodel的数据

当第一次导航到某个页面时,所有这些都可以工作。viewmodel已传入,数据已设置,所有内容都已正确显示。但是,当我使用不同的参数导航到第1页,然后导航到第2页时,似乎viewmodel在内部发生了更改,但显示并不能准确反映这些更改。viewmodel及其属性确实正确实现了INotifyPropertyChanged

我们发现Page2已将NavigationCacheMode设置为Enabled。当我们禁用导航缓存时,页面按预期更改。基于此,似乎当我们更改OnNavigatedTo方法中的数据时,我们的更改最终会被从缓存中提取的数据覆盖?这是正确的吗?如果是,我们是否应该在其他地方填充viewmodel以避免这种情况?或者我们应该简单地检查页面的参数是否已更改,并有条件地清除缓存以强制完全重新加载