如何保存和加载对象
本文关键字:加载 对象 保存 何保存 | 更新日期: 2023-09-27 18:11:00
目前,我正在使用WPF。我有两个窗口I-e, window1和window2。Window1有一个导航到window2的按钮;Window2也有一个返回到window1的按钮。Window2有许多控件和用户控件。这种情况是,每当我将window1导航到window2时,由于某些原因,我必须创建window2的新对象。我知道单例模式,但不适用于这里。
现在,在卸载事件的window2我保存window2的对象在一个静态类(我保存"this"到静态类)。当用户再次在这里导航时,我想加载保存的对象,而不是构造新的对象。
是否有任何方法来加载保存的对象在当前对象将要构造?在构造函数或加载中我可以加载保存的对象?
Thanks in advance
因为它被标记为wpf
,您肯定应该看看mvvm
。而不是在表单之间传递数据,您将有两个ViewModel
s(每个表单)来保存所有与UI相关的数据和一些Model
s来保存其余的。这些视图模型(和模型)将在窗体关闭/打开之间持续存在,这意味着不需要传递任何东西或save/load。
如果您需要实际保存数据(例如,不同的状态集或为了使数据在退出/启动应用程序中存活),那么请查看序列化。我最喜欢的是XmlSerializer
/XmlDeserializer
,因为它易于控制,易于更改(编辑数据)并且易于支持版本控制。有几十个教程,只需搜索"c#序列化",可选词"xml"或"二进制"甚至"protobuf"。