1

我正在尝试将 TableViewer 绑定到

models = List<ModelObject>

,但我并没有真正掌握它。应该可以通过主详细信息和数据绑定上下文 (DataBindingContext) 进行绑定,以便我能够仅在请求时将列表(及其元素)的更改写入模型(dbc 设置为 POLICY_ON_REQUEST),即在编辑器的保存动作中。使用简单的文本字段,这就像一个魅力,但我找不到任何类似的 TableViewers 示例。当我查看 ViewerSupport 实例的 API 时,我只能绑定它,但没有提供 DBC 或主详细信息的选项。这有效:

ViewerSupport.bind(aViewer, new WritableList(models, ModelObject.class), BeanProperties.value(ModelObject.class, "name")));

但如前所述,它不允许使用 dbc 或主详细信息。

有没有解决方案,或者 TableViewer 只是不支持我打算使用的数据绑定?是否有解决方法或我错过了一些 API?

谢谢提前回答!

4

1 回答 1

0

现在我看得更远一点,我想出了如何使用主从细节:

tmp = BeansObservables.observeDetailList(masterObservable,
                            "name", ModelObject.class)
ViewerSupport.bind(aViewer, tmp, BeanProperties.value(ModelObject.class, "name")));

问题仍然存在,如何在列表和列表元素中进行更改而不直接持久化(即 POLICY_ON_REQUEST),以便我可以根据用户请求保存它们。更具体地说:如何在某处注入 DataBindingContext ......

于 2010-08-09T10:13:55.893 回答