UWP导航到相同类型的页面

时间:2018-03-22 14:19:50

标签: c# mvvm uwp windows-10 viewmodel

我有Page名为TableView,用于在应用程序的数据库中添加/编辑/删除记录。我没有为每个模型类创建一个特定的TableView页面,而是通过为我正在编辑的任何类型的对象传递适当的TableView来使TableViewModel更通用。

例如,如果我想使用Foo个对象,我会说:

Frame.Navigate(typeof(TableView), new FooTableViewModel());

这似乎很有效,直到我开始与子实体合作。

例如,如果一个Foo有多个Bars,我可以使用TableView导航到新的TableView,其中显示所有Bar个实体附加到选定的Foo实体。例如:

Frame.Navigate(typeof(TableView), new BarTableViewModel(selectedFooId));

当我在查看Bar实体时单击后退按钮返回基本Foo实体时,会出现问题。我注意到整个页面每次都重新加载,这并不完全理想。

起初,我认为我只需要像TableView那样设置缓存:

this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

然而,这似乎完全破坏了设置,因为缓存似乎是按类型完成的,并且只有一种TableView页面。因此,当我尝试查看子实体并导航到具有不同视图模型的另一个TableView时,我最终无处可去,因为已经缓存了TableView

作为UWP的新手,我最初只想使用一个TableView并将其传递给不同的View Models的想法可能首先不是一个好主意。无论如何,我可以使用当前的设置,但仍然利用UWP导航和页面缓存?我应该完全以另一种方式解决这个问题吗?

0 个答案:

没有答案