Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不放弃ViewModels的情况下使用INavigationService?_C#_Wpf_Mvvm_User Controls_Devexpress - Fatal编程技术网

C# 在不放弃ViewModels的情况下使用INavigationService?

C# 在不放弃ViewModels的情况下使用INavigationService?,c#,wpf,mvvm,user-controls,devexpress,C#,Wpf,Mvvm,User Controls,Devexpress,我使用的是INavigationService,因此我可以在两个ViewModel之间导航,如下所示: 主视图模型: public virtual INavigationService NavigationService { get; } //Command Navigate to SubUserControlView: NavigationService.Navigate("SubUserControlView", parentViewModel: this); public vir

我使用的是
INavigationService
,因此我可以在两个ViewModel之间导航,如下所示:

主视图模型:

 public virtual INavigationService NavigationService { get; }
 //Command Navigate to SubUserControlView:
 NavigationService.Navigate("SubUserControlView", parentViewModel: this);
 public virtual INavigationService NavigationService { get; }
 //Command Navigate back to MainUserControlView:
 NavigationService.GoBack(parameter);
子视图模型:

 public virtual INavigationService NavigationService { get; }
 //Command Navigate to SubUserControlView:
 NavigationService.Navigate("SubUserControlView", parentViewModel: this);
 public virtual INavigationService NavigationService { get; }
 //Command Navigate back to MainUserControlView:
 NavigationService.GoBack(parameter);

当我返回到我的
MasterViewModel
时,所有更改都将被放弃。我怎样才能避免呢?我想使用
子用户控制视图
从列表中选择一个值,并将其返回到
主视图模型
尝试将母版页的
KeepAlive
属性设置为
true

<Page x:Class="WpfApplication3.MasterPage"
      .... KeepAlive="True">

这将防止每次将
页面导航到以下位置时创建该页面的新实例:


如果您在页面的构造函数中创建视图模型,这也会导致视图模型不会被重新创建。

我假设UserControls没有此属性?没有。只有页面。