gpt4 book ai didi

wpf - 使用绑定(bind)取消 WPF 中的更新

转载 作者:行者123 更新时间:2023-12-04 16:13:03 24 4
gpt4 key购买 nike

这更像是一个概念性问题。如果有帮助,可以说它属于 MVVM 模式。在我对 WPF 绑定(bind)的任何研究中,我从未见过这个问题。

如果您有一个窗口,其中的元素通过绑定(bind)连接到 View 模型,并且用户更新了记录,但在保存之前决定取消更新,您认为撤销更改的最佳方法是什么?

我能想到几个可能性:

  1. 不是让用户更新主显示,而是弹出第二个窗口进行编辑,该窗口绑定(bind)到 VM 的副本,并在“保存”时将该数据写入原始 VM,然后更新回模型。 增加内存使用和保存功能的复杂性。
  2. 制作原始 VM 对象的“原始”副本,并在“取消”时将该 VM 写回原始对象(此时可以删除该副本)。 增加取消函数的内存使用和复杂性。
  3. 为 VM 中的每个元素创建一个副本,这些元素在创建时可能会发生变化,在“取消”时,将这些值写回已更改的值。 增加 VM 的大小和复杂性。
  4. 执行“取消”后,VM 会访问数据源并重新加载记录。 导致网络流量和数据库访问流量,并可能导致显示更新回原始状态的延迟时间。如果虚拟机是从另一个进程更新的,并且不应删除这些“外部”更新,也可能会导致问题。

谁能想出更好的解决方案来解决这个问题,或者知道 WPF 中“自动”处理此问题的一些模糊功能?

最佳答案

我认为最简单的方法是使用 BindingGroup,它会延迟对 VM 的更新,直到用户明确提交更改。这样,控件将缓存更改的值,并且 BindingGroup 将能够从(仍未更改的)VM 恢复原始值。

关于wpf - 使用绑定(bind)取消 WPF 中的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096687/

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