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()
初始化一些已绑定的变量,但是由于未初始化,因此显示了较早的值。
答案 0 :(得分:0)
如果我理解您的正确,解决方法是将属性的初始化移至VM(ViewModel)上的方法。我们将其命名为Reset()
然后从您的视图绑定到VM属性。
如果要在显示视图时再次重置值。我只需让负责导航的任何代码在VM上调用Reset()。通常,当我进行导航时,我的ViewModels中总是有一个NavigatedTo()方法和一个NavigatedFrom()方法,让导航服务调用该方法。因此,在NavigatedTo中,您可以调用Reset()。在VM构造函数中,您还可以调用Reset()