完成保存修改后的变量,和离开视图时提示有变量没有保存

This commit is contained in:
2025-07-03 22:16:47 +08:00
parent 6726085496
commit fdaaf50c1d
7 changed files with 134 additions and 37 deletions

View File

@@ -13,7 +13,8 @@ public partial class NavgatorServices : ObservableRecipient, IRecipient<Navgator
{
private readonly ILogger<NavgatorServices> _logger;
[ObservableProperty] private ViewModelBase currentViewModel;
// [ObservableProperty]
private ViewModelBase currentViewModel;
public NavgatorServices(ILogger<NavgatorServices> logger)
{
@@ -21,35 +22,44 @@ public partial class NavgatorServices : ObservableRecipient, IRecipient<Navgator
IsActive = true;
}
partial void OnCurrentViewModelChanging(ViewModelBase viewModel)
{
viewModel?.OnLoading();
}
partial void OnCurrentViewModelChanged(ViewModelBase viewModel)
{
OnViewModelChanged?.Invoke();
viewModel?.OnLoaded();
}
// public ViewModelBase CurrentViewModel
// partial void OnCurrentViewModelChanging(ViewModelBase viewModel)
// {
// get => currentViewModel;
// set
// {
// value?.OnLoading();
// currentViewModel = value;
// OnViewModelChanged?.Invoke();
// currentViewModel?.OnLoaded();
// }
// viewModel?.OnLoading();
// }
//
// partial void OnCurrentViewModelChanged(ViewModelBase viewModel)
// {
// OnViewModelChanged?.Invoke();
// viewModel?.OnLoaded();
// }
public ViewModelBase CurrentViewModel
{
get => currentViewModel;
set { currentViewModel = value; }
}
public void Receive(NavgatorMessage message)
public async void Receive(NavgatorMessage message)
{
try
{
ViewModelBase nextViewModel = message.Value;
//如果OnExit返回False终止跳转
if (currentViewModel != null)
{
var isExit = await currentViewModel.OnExitAsync();
if (!isExit)
{
return;
}
}
nextViewModel?.OnLoading();
CurrentViewModel = message.Value;
OnViewModelChanged?.Invoke();
currentViewModel?.OnLoaded();
}
catch (Exception e)
{