当用户单击将 View 模型作为数据上下文的 View 上的新按钮时,如何重置我的 View 模型?
例如:
如果我有一个 View NewCustomer 并在保存时,数据将保存到数据库中并显示新创建的帐号。但是当用户单击屏幕中的“新建”按钮时,我希望重新初始化 View ( View 模型)。或者,如果用户单击屏幕中的“取消”以清除所有更改。
我怎样才能实现这个目标?我使用 Prism 5.0 和 Unity 作为容器。
如果我使用 IRegionMemberLifetime,当我导航离开并再次导航到 View 时,我可以清除 View 模型数据(通过在导航离开之前单击“新建”按钮将 KeepAlive 设置为 false)。但我希望无需导航即可清除表单。这可以吗?
最佳答案
您可以有一个 screen/workspaceViewModel 和另一个包装您的数据的 ViewModel。
所以有两个类:CarScreenViewModel
和 CarViewModel
。
CarScreenViewModel
将有一个属性,例如 CurrentCar
,它反射(reflect)当前在屏幕中选择的内容。然后,当单击创建
按钮时,您只需设置:
CurrentCar = new CarViewModel();
重置部分加载的数据只会导致难以重现的行为。最好从一个新的实例开始。
关于wpf - 如何在 mvvm 中重置 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120419/