如何使用MVVM取消对对象的编辑?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

如何实现使用MVVM编辑对象的取消。

例如:我有一张顾客名单。我选择一个客户--点击“编辑”按钮,打开一个对话框窗口(DataContext绑定到CustomerViewModel),然后开始编辑Customer的字段。然后我决定取消编辑,但是客户的字段已经被更改了,那么我如何在MVVM中将一个客户返回到以前的状态呢?

提问于
用户回答回答于

如果对象已经可串行化,比如正在使用WCF,那么这是一种非常简单的方法。可以将原始对象序列化为内部字段。如果对象不能序列化,那么只需使用若要用一行代码创建对象的副本,请执行以下操作。

Order backup = Mapper.Map<Order, Order>(order);

当处理CancelCommand时,只需反向调用AutoMapper即可。因为属性已经有了更改通知,所以一切都可以正常工作。如果需要并希望编写额外的代码,可以将这些技术与IEditableObject结合起来。

用户回答回答于

检查一下IEditableObject接口。你的Customer类应该实现这一点,命令可以执行。

BeginEdit/CancelEdit/EndEdit视情况而定。

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • 杰西

    5 粉丝1 提问4 回答
  • 浮生长恨欢娱少

    个人站长 · 站长 (已认证)

    51 粉丝2 提问4 回答
  • 滑稽园扛把子

    Swoole Inc · PHP工程师 (已认证)

    135 粉丝0 提问4 回答

扫码关注云+社区