[英]Working with the ViewModels in MVVM Light?
基本上,我完全使用背后的代码创建了应用程序,现在我正在迁移到MVVM。 我面临的挑战之一是如何处理持久化在内存中的ViewModel。
例如,在我的应用程序的第一个版本中,我知道一旦用户单击某个页面上的“后退”按钮,该视图将被丢弃并且所有内容将被清除,但是当我开始使用ViewModel并导航到该页面时我上次浏览到页面时创建的ViewModel(换句话说,没有调用构造函数)。
现在这是应该工作的方式吗? 我希望每次导航时都重新创建ViewModel,而每次回击时都将其丢弃。 但是就像我说的那样,这对我来说是新的。 我是否应该使用相同的视图模型并以某种方式刷新值,以使其不显示旧数据?
这是当用户离开页面(此代码在页面的xaml.cs中)文件时清除视图模型的方式:
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Back)
ViewModelLocator.ClearDetailsViewModel();
base.OnNavigatingFrom(e);
}
ClearDetailsViewModel的实现就像
if (_detailsViewModelStatic == null) return;
_detailsViewModelStatic.Cleanup();
_detailsViewModelStatic = null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.