这可能吗?
我所拥有的只是一个列表和编辑页面
当我按下保存按钮时,我保存该项目并导航到更新项目的上一页。 所以页面之间的数据绑定工作正常。
我需要的是"撤消"如果我点击取消或导航回来,我做的数据绑定更改。
我的工作但我觉得 可能 ,是一个" oldObject"和#34; didClickSaveButton"我回到第一页时检查的属性(OnAppearing),如果没有点击保存按钮,则恢复为旧值。
对此没有更好的方法吗?内置的东西可能吗?
答案 0 :(得分:2)
为您的编辑页面创建一个ViewModel。页面加载时,使用选定的域对象创建VM。如果用户选择“保存”,则将更改从VM保留回域对象。如果用户取消,则不执行任何操作。
答案 1 :(得分:1)
只需克隆您的域对象并将其传递给数据绑定的viewmodel。我采取了快速而肮脏的方法
public static T Clone<T>(T source)
{
var serialized = JsonConvert.SerializeObject(source);
return JsonConvert.DeserializeObject<T>(serialized);
}
并且是为每个页面创建一个新的视图模型