【问题标题】:How to bind a TableViewer to a java.util.List in Eclipse RCP如何在 Eclipse RCP 中将 TableViewer 绑定到 java.util.List
【发布时间】:2010-08-09 18:13:55
【问题描述】:

我正在尝试将 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 或 master-detail。

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

谢谢提前回答!

【问题讨论】:

    标签: data-binding list request eclipse-rcp tableviewer


    【解决方案1】:

    现在我进一步了解了如何使用主从:

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

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

    【讨论】:

    • 我刚刚注意到您必须确保更新输入数据。这通常是 tmp,如果您使用 ViewerSupport#bind 绑定列,或者您可以从查看器中获取它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    相关资源
    最近更新 更多