基于EMF模型的TableViewer数据绑定一般采用下面的方式:
其中 AEPackage.Literals.XXXXS是AEObject的一个一对多的EList类型子属性,如果我们只有一个List<EObject>,而没有容器对象的时候就不行了,一开始只好修改模型,虚拟出一个容器对象再使用,感觉不是很好。
其实问题解决很简单,只是网上没有找到有人共享方法,看来这两个东东结合起来用的人还不是太多。
在单纯使用EMF,没有使用数据绑定时候,即使用XXXItemProvider作为Label和Content提供器参数的时候(当然要用AdapterFactoryContentProvider和AdapterFactoryLabelProvider包装一下),遇见这种情况可以使用tv.setInput(new ItemProvider(AList))
在使用EMF数据绑定时候,可以使用tv.setInput(new WritableList(Alist,XXX.class););