规范-如何更新树列表以保持当前选择



我正在显示一个树,我需要添加一个元素,但我想保留当前选择的项。如果我这样做:

oldSelectedItem := treePresenter selectedItem.
treePresenter
roots: newRootCollection;
selectItem: oldSelectedItem

它当然会起作用,但有一个问题:激活事件(whenActivatedDo:(将被触发,我不知道这是什么!我该如何避免它?

规范中的树和树表实现了APIupdateRootsKeepingSelection:来防止这种情况的发生
在实践中,它与上面的代码相同,但不会触发任何激活,也不会进行激活传输。

此代码:

treePresenter updateRootsKeepingSelection: newRootCollection

将具有与原始代码相同的效果,但在执行时不会触发激活
(当然,为了正常工作,新集合必须包含以前选择的元素(。

最新更新