Xaml &引用;撤销;未单击“保存”按钮时数据绑定更改
可能吗 我只有一个列表和编辑页面Xaml &引用;撤销;未单击“保存”按钮时数据绑定更改,xaml,data-binding,xamarin.forms,Xaml,Data Binding,Xamarin.forms,可能吗 我只有一个列表和编辑页面 包含项目列表的页面 编辑页面,编辑第一页中的项目 其中编辑页面有一个取消和保存按钮 当我按下保存按钮时,我保存项目并导航到项目更新的上一页。因此,页面之间的数据绑定工作正常 如果单击“取消”或导航回,我需要“撤消”所做的数据绑定更改。 我所做的工作但我觉得可能不是要走的路,是一个“oldObject”和一个“didClickSaveButton”属性,当我返回第一页时(在出现时)我会检查它,如果没有单击save按钮,则恢复到旧值 难道没有更好的办法吗?可能内
- 包含项目列表的页面
- 编辑页面,编辑第一页中的项目
- 其中编辑页面有一个取消和保存按钮
难道没有更好的办法吗?可能内置了什么?为编辑页面创建一个视图模型。加载页面时,使用所选域对象创建VM。如果用户选择保存,则将更改从VM保留回域对象。如果用户取消,则什么也不做。只需克隆域对象并将其传递给viewmodel进行数据绑定。我走了一条又快又脏的路
public static T Clone<T>(T source)
{
var serialized = JsonConvert.SerializeObject(source);
return JsonConvert.DeserializeObject<T>(serialized);
}
公共静态T克隆(T源)
{
var serialized=JsonConvert.serialized对象(源);
返回JsonConvert.DeserializeObject(序列化);
}
是的,为每个页面创建一个新的视图模型是的,我想这可能是我的问题。您是否建议始终为我创建的每个xaml页面创建一个新的ViewModel?我在任何地方都找不到这方面的指导方针……我认为在MVVM中,这是理想的方法