如何从屏幕上删除View后立即销毁ViewModel对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从屏幕上删除View后立即销毁ViewModel对象相关的知识,希望对你有一定的参考价值。
我在InitializeDataViewer()
中有一些代码,每次加载一个视图时都需要执行这些代码。我已将代码保存在ViewModel
构造函数中。当我回来获取该视图时,我的问题就出现了 - 构造函数没有被执行。有没有办法销毁ViewModel对象或其他一些方法来执行构造函数代码?
public Data_Viewer_View_Model()
{
InitializeDataViewer();//this has to be executed eachtime the view is loaded.
dataViewerModel = new Data_Viewer_Model();
objBackToDatabase = new ButtonCommand<string>(dataViewerModel.BackToDatabase, dataViewerModel.IsValid);
objBackToDatabase.ReturnValueChanged += objBackToDatabase_ReturnValueChanged;
}
InitializeDataViewer()
初始化一些绑定的变量,但由于它没有初始化,因此会显示较旧的值。
答案
如果我理解你是正确的,那么解决它的方法是将属性的初始化移动到VM上的方法(ViewModel)。我们把它命名为Reset()
然后从视图绑定到VM属性。
如果要在显示视图时再次重置值。我只想让任何负责导航的代码调用VM上的Reset()。通常当我进行导航时,我总是在我的ViewModel中使用NavigatedTo()方法和NavigatedFrom()方法,我让导航服务调用。所以在NavigatedTo中你可以调用Reset()。在VM构造函数中,您还可以调用Reset()
以上是关于如何从屏幕上删除View后立即销毁ViewModel对象的主要内容,如果未能解决你的问题,请参考以下文章