Tree 如何在虚拟模式下以编程方式在SWT树上触发setData事件
是否可以在虚拟模式下以编程方式在SWT树上触发setData事件?小部件中的Tree 如何在虚拟模式下以编程方式在SWT树上触发setData事件,tree,swt,virtual,Tree,Swt,Virtual,是否可以在虚拟模式下以编程方式在SWT树上触发setData事件?小部件中的notifyListeners-方法会执行此操作 tree.notifyListeners(SWT.SetData, <EventData>) tree.notifyListeners(SWT.SetData,) 不过,你必须构建并移交一个适当的事件。山姆·郑,两年后,我当然希望你找到了答案,但这是给其他寻求真相的人的: 使用Tree.clear(index,boolean)或Tree.clearAll(
notifyListeners
-方法会执行此操作
tree.notifyListeners(SWT.SetData, <EventData>)
tree.notifyListeners(SWT.SetData,)
不过,你必须构建并移交一个适当的事件。山姆·郑,两年后,我当然希望你找到了答案,但这是给其他寻求真相的人的:
使用
Tree.clear(index,boolean)
或Tree.clearAll(boolean)
方法处理根级别的项目,使用TreeItem.clear(index,boolean)
或TreeItem.clear(boolean)
方法处理根级别以下的项目。我只想补充一下为我工作的Fabian Zeindl,以防这些附加信息对某人有用
使用SWT.VIRTUAL
标志时,将元素滚动到视图中时,元素按需加载为TreeItem
s。我想在TreeViewer
中选择一个元素,该元素尚未作为TreeItem
加载,这使得viewer.setSelection()
无法工作。这意味着必须将给定元素显式加载为TreeItem 下面是一个简化的示例代码,可供使用:
final Tree treeViewerTree=treeViewer.getTree();
//现在我们假设indexOfElementToSelect值设置为正确的值(该值低于treeViewerTree.getItemCount()!!)
TreeItem TreeItem=treeViewerTree.getItem(indexOfElementToSelect);
最后一个布尔值是virtualtree=(treeViewerTree.getStyle()&SWT.VIRTUAL)!=0;
如果(iVirtualTree){
//以虚拟模式在SWT树上以编程方式触发SWT.SetData事件,该模式显式加载项
Event virtualTreeEvent=新事件();
virtualTreeEvent.index=indexOfElementToSelect;
virtualTreeEvent.item=treeItem;
//以编程方式触发SWT.SetData
notifyListeners(SWT.SetData、virtualTreeEvent);
}
treeViewer.setSelection(新结构选择(………),true);
这不是我想要的,因为要使用此函数,必须创建事件数据。不管怎样,我终于绕过了这个问题。谢谢你,费边,这对我很有效+1.是对我的案例的简短描述。这对我不起作用,它不会触发SWT.SetData
事件。但费边的的确如此。