【问题标题】:Axapta: Update FormTreeControl after image changeAxapta:图像更改后更新 FormTreeControl
【发布时间】:2009-12-12 07:21:34
【问题描述】:

在我的其他方法(数据、文本等)中,setItem 方法可以很好地显示对树项所做的更改。但是,在更改项目图标后调用 setItem 似乎没有任何效果。更新树项以显示新图标的最佳方法是什么?

谢谢

public void modified()
{
    FormTreeItem workingItem;
    ;
    super();

    //find the current item
    workingItem = FormTreeControl.getItem(FormTreeControl.getSelection());
    //update the value
    workingItem.Image(1);
    //update the item in the list
    FormTreeControl.setItem(workingItem);

}

【问题讨论】:

    标签: icons axapta treecontrol


    【解决方案1】:

    在这里发现了几个问题:
    1. 从未找到有效更新树项图标的方法。
    2. 如果尝试从数据源方法中添加/删除,发现某些树控件对象未初始化,因此删除项目会引发 Object Not Initialized 错误。

    通过以下方式修复它:
    1.创建一个新项目(旧项目的addAfterIdx)。
    2.删除旧项目。
    3. 选择新项目。
    3. 将方法从数据源移动到实际的表单控件。

    这是对我有用的代码:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2017-07-08
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多