在这里发现了几个问题:
1。从未找到有效更新树项目上图标的方法。
2.第2条。发现如果尝试从数据源方法添加/删除某些树控件对象,则这些对象未初始化,因此删除项会引发对象未初始化错误。
固定:
1.创建新项(旧项的addAfterIDX)。
2.第2条。删除旧项目。
三。选择新项目。
三。将方法从数据源移动到实际表单控件。
以下是适用于我的代码:
public boolean modified()
{
boolean ret;
FormTreeItem workingItem = FormTreeControl.getItem(currentEditingIdx);
TreeItemIdx newItemIdx;
;
ret = super();
//create a new item
newItemIdx = SysFormTreeControl::addTreeItem(FormTreeControl, workingItem.text(), FormTreeControl.getParent(workingItem.idx()), workingItem.data(), element.imageIdx(ABC_Icon.text()));
//delete the old item
FormTreeControl.delete(currentEditingIdx);
//select the new item
FormTreeControl.selectionChanged(FormTreeControl.getItem(FormTreeControl.getRoot()), FormTreeControl.getItem(newItemIdx), FormTreeSelect::Unknown);
return ret;
}