gpt4 book ai didi

mvvm - 如何正确保存页面的 View 模型以处理墓碑

转载 作者:行者123 更新时间:2023-12-03 10:22:00 24 4
gpt4 key购买 nike

我正在构建WP7应用程序,现在正在处理其中的逻辑删除部分。

我正在做的是在发生NavigatedFrom事件时将页面的 View 模型保存在Page.State包中,然后在NavigatedTo中读回它(进行一些检查以检测是否应该从包中读取还是从真实的实时数据中读取)的应用程序)。

首先,我的虚拟机只是域模型的包装

public string Nome
{
get
{
return _dm.Nome;
}
set
{
if (value != _dm.Nome)
{
_dm.Nome= value;
NotifyPropertyChanged("Nome");
}
}
}

但这并不总是可行的,因为在保存到书包中然后回读时,域模型未正确反序列化。

然后,我将VM实现更改为只是DM需要的属性的副本:
public string Nome
{
get
{
return _nome;
}
set
{
if (value !=nome)
{
_nome= value;
NotifyPropertyChanged("Nome");
}
}
}

并执行以下操作的构造函数:
_nome = dm.Nome;

现在它可以工作,但是我不确定这是否是正确的方法。

谢谢
西蒙妮

最佳答案

任何临时状态信息都应保留在Application.Deactivated事件中,然后在Application.Activated事件中恢复以支持逻辑删除。

如果您需要在应用程序 session 之间存储任何内容,则可以使用Application.Closing事件,但是根据需要存储的内容,只要它发生更改就可以存储它。同样,根据需要存储的内容,可以在Application.Launching事件中将其还原,也可以在需要时读取它。

您采用的方法完全取决于应用程序的要求,并且存储数据的方法和位置也取决于您(将二进制序列化到隔离存储中是最快的)。

我不知道您的应用程序的详细信息,但是如果您希望实现对墓碑的支持,则在NavigatedFrom/NavigatedTo中保存和还原数据不太可能是正确的选择。

关于mvvm - 如何正确保存页面的 View 模型以处理墓碑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com