我按照here中的描述实现了一个自定义PropertySheet。
因此,我有一个主视图,它实现了selectionprovider,并在我的自定义PropertySheet视图中显示属性。
我现在的问题是,如果属性视图中有未保存的更改,我希望在属性视图中编辑选择的某些属性,并防止在主视图中更改选择。
解决这个问题的最好方法是什么?
如果我在自定义属性视图中实现ISaveablePart,我可以将其标记为脏。如果我的属性视图是脏的,我如何防止更改选择?
提前感谢!
发布于 2016-06-21 20:09:34
由于视图是非模态(例如,非阻塞) UI组件,因此没有真正的方法来阻止视图外部的选择更改。因此,Properties视图的预期工作方式是尽快保存。
缺省的、基于TreeViewer的EMF模型实现使用CellEditor来更改其值;当CellEditor中的值发生更改时,更改后的值将自动写回原始模型,以避免您提到的数据丢失场景。
换句话说,您必须依赖于您的数据源(例如,提供选择的编辑器)来存储永久更改,并且可以通过该源(编辑器)序列化这些更改。
https://stackoverflow.com/questions/37943637
复制相似问题