使用 MVVM Light 的 Xamarin Forms - 从堆栈中删除导航页面
Xamarin Forms using MVVM Light - Remove Navigation pages from stack
我有一个简单的基于 Xamarin 表单的应用程序,它向服务提交应用程序,我想在该服务上清除导航堆栈,以便可以输入新的应用程序。我正在使用 MVVM Light 框架,但内置的导航服务没有清除堆栈的方法。
我知道开箱即用的 Xamarin 使用 Navigation.RemovePage
是可能的,但不确定如何在 MVVM Lights 导航服务中实现它。
我在 NavigateTo 方法中使用参数作为清除堆栈的指示符:
if (parameter == null)
{
foreach (var pageList in _navigation.Pages)
{
//Remove from navigation stack
}
}
我希望我可以从这里触发一些东西来清除堆栈,以便刷新页面,或者是否有更好的方法,可能直接从视图模型?
谢谢
如果它对任何人有帮助,使用 MVVMLight,您可以使用:
SimpleIoc.Default.Unregister<ViewModel>();
这将从缓存和所有以前的实例中完全删除视图 model/bindings。
我发现只是从堆栈中弹出,(使用Application.Current.MainPage.Navigation.PopAsync();
)并没有清除模型数据,只是导航堆栈。
我有一个简单的基于 Xamarin 表单的应用程序,它向服务提交应用程序,我想在该服务上清除导航堆栈,以便可以输入新的应用程序。我正在使用 MVVM Light 框架,但内置的导航服务没有清除堆栈的方法。
我知道开箱即用的 Xamarin 使用 Navigation.RemovePage
是可能的,但不确定如何在 MVVM Lights 导航服务中实现它。
我在 NavigateTo 方法中使用参数作为清除堆栈的指示符:
if (parameter == null)
{
foreach (var pageList in _navigation.Pages)
{
//Remove from navigation stack
}
}
我希望我可以从这里触发一些东西来清除堆栈,以便刷新页面,或者是否有更好的方法,可能直接从视图模型?
谢谢
如果它对任何人有帮助,使用 MVVMLight,您可以使用:
SimpleIoc.Default.Unregister<ViewModel>();
这将从缓存和所有以前的实例中完全删除视图 model/bindings。
我发现只是从堆栈中弹出,(使用Application.Current.MainPage.Navigation.PopAsync();
)并没有清除模型数据,只是导航堆栈。