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没有此属性?没有。只有页面。