当用户单击视图上的新按钮时,如何重置视图模型,因为它是数据文本?
例如:
如果我有一个视图NewCustomer,并且在保存时,数据会保存到DB中,并显示新创建的帐号。但是当用户单击屏幕上的New按钮时,我希望重新初始化视图(viewmodel)。或者如果用户在屏幕上单击“取消”以清除所有更改。
我怎样才能做到这一点?我使用棱镜5.0和统一作为我的容器。
如果我使用IRegionMemberLifetime,我可以在离开时清除视图模型数据,然后再导航到视图(在导航之前,在单击New按钮时将KeepAlive设置为false )。但我希望不用导航就能清除表单。这能办到吗?
发布于 2014-08-04 14:08:10
您可以有一个屏幕/工作区视图模型,以及另一个包装数据的ViewModel。
所以有两个类:CarScreenViewModel和CarViewModel。
CarScreenViewModel将有一个属性,比如CurrentCar,它反映了当前屏幕中选择的内容。然后,单击Create按钮时,只需设置:
CurrentCar = new CarViewModel();重置部分加载的数据只会导致难以再现的行为。最好从一个新的实例开始。
发布于 2014-08-04 14:05:05
您的标准方法如下所示
ViewModels
CustomersContainerViewModel,包含
一个CustomerViewModel和ICommands的集合
CreateNewCustomer
DeleteExistingCustomer
UpdateExistingCustomer您的视图将包含CustomersContainerView,它将在所需的UI元素中包含一个客户对象集合--一个创建新客户的按钮(该按钮将启动一个新的屏幕,其中包含它也可以包含的取消(它将关闭表单)、一个要删除的按钮(也可以是一个ContextMenu)、一个要更新的按钮(也可以是一个ContextMenu),该按钮将启动一个包含来自DB的详细信息的客户表单。
希望这有点道理..。如果您有上述任何问题,请告诉我。
更新-忘了添加。NewCustomer命令将向您的CustomerCollection中添加一个新的Customer对象,该对象应该打开一个NewCustomer表单(或您选择的任何内容),以便用户输入客户详细信息。“取消/删除”将只从集合中删除该记录。此外,Delete还将更新DB。
发布于 2022-01-27 17:34:09
在我的情况下
yourViewName.variableName.postValue("")
https://stackoverflow.com/questions/25120419
复制相似问题