在切换到其他控件之前,如何在用户控件上保存数据?

时间:2019-05-30 13:57:42

标签: c# wpf mvvm

我有一个具有不同用户控件的WPF应用程序。单击左侧的按钮可以访问它们中的每一个。我的问题是,当我进入一个用户控件并在文本框,组合框等中填写数据时,我可能必须在途中将其停止并单击另一个用户控件。在执行此操作时,我需要保持先前用户控件中的数据完整无缺,以便当我返回第一个用户控件时,在离开它之前,数据应该存在于所有控件中。我该如何实现?这是我的应用程序外观的示例图片:

enter image description here

图片来源:https://rachel53461.wordpress.com/2011/12/18/navigation-with-mvvm-2/

从图片中,如果我在“产品页面”中,则可能会有几个文本框,其中输入了数据。由于种种原因,我可能不得不离开此页面,然后单击“主页”或其他页面,在那里做一些工作,然后返回“产品”页面。当我返回时,我需要在离开时按原样显示数据。

预先感谢

1 个答案:

答案 0 :(得分:1)

您必须为每个不同的用户控件创建一个ViewModel。 ViewModel保留在内存中,直到您进行处理或进行其他处理为止。 例如,您为主页拥有一个User控件,这意味着您拥有主页的用户控件的视图(MainPageView),该视图属于ViewModelMainPage。 对于产品,您可能有一个ProductView,它属于ViewModelProducts。 您必须创建一个ManagerViewModel来管理不同用户控件的视图。