gpt4 book ai didi

java - 如果在对话框中使用数据绑定(bind),当用户取消编辑时如何恢复数据?

转载 作者:行者123 更新时间:2023-11-29 06:19:37 24 4
gpt4 key购买 nike

如果我得到一个 bean 和一个对话框,并且它们与双向数据绑定(bind)耦合,那么当用户取消编辑时回滚到原始 bean 的最佳方法是什么。

编辑 1

如果用户在编辑模式下打开对话框,然后他做了一些修改并按“确定”,然后这个对话框关闭并且底层 bean 得到更新。当我说“取消编辑”时,我的意思是用户打开对话框并做了一些修改但按下了“取消”按钮。在这种情况下,底层 bean 应该保持不变,但由于数据绑定(bind),它变脏了,我想要原来的 bean。

我可以在对话框打开时克隆一个 bean,如果用户按“确定”,克隆的 bean 将被复制回原始 bean;如果用户按下“取消”,克隆的 bean 将被放弃。我不知道这是否是一个好方法。

最佳答案

我一直非常成功地使用克隆方法。克隆方法有两种:绑定(bind)​​到克隆和绑定(bind)到原始。

绑定(bind)到克隆将使任何其他绑定(bind)到屏幕上同一字段的内容在您的对话框打开时不会更新。当按下 OK 时,您将克隆复制到原始对象,取消时您只需将克隆丢弃。

绑定(bind)到原始允许屏幕更新绑定(bind)到同一字段的其他组件。当按下 OK 键时,您将丢弃克隆。当按下取消时,您将克隆复制到原件。

我赞成绑定(bind)到克隆方法,因为我认为在对话框打开时看到屏幕上的其他组件更新会令人困惑。我认为这会造成混淆,即取消是否会回滚出现在对话框外的更改。

另一种方法是使用可刷新绑定(bind)策略,其中绑定(bind)可以这样设置,即在调用某种 flush() 方法之前不会更新对象。如果您的数据绑定(bind)框架不支持此功能,那么稍后要解决此问题可能需要大量工作。

关于java - 如果在对话框中使用数据绑定(bind),当用户取消编辑时如何恢复数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666311/

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