1

我有一个带有 glazedlist 的 griffon 1.5 应用程序,我试图从中观察变化并将其 size() 绑定到视图中的字段..

在我的模型中,我有

@Bindable timeslotPicks = 0

@Bindable
@PropertyListener (tableChanged) EventList<ProductionLineEntry> table =
        new BasicEventList<ProductionLineEntry>()  ....

.. 和

def tableChanged = {evt->
    println "table Changed ... "
    setTimeslotPicks(table.size())
}

唉,我的 tableChanged 事件没有触发..如何将视图字段绑定到我的 glazedlist 的当前大小?提前致谢 ..

4

2 回答 2

0

我重新调整了我的模型..

EventList<ProductionLineEntry> table =
        new BasicEventList<ProductionLineEntry>()
...

并删除了我的 tablechanged 支票..

在我的 mvcInit 控制器方法中,我添加了..

 // Add a listener to my list ..
    model.table.addListEventListener(
       {e-> model.timeslotPicks = model.table.size()} as ListEventListener
    )

它现在工作得很漂亮..

谢谢

于 2015-03-20T14:49:15.937 回答
0

问题是您正在观察对table字段所做的更改,而不是table您期望的字段内容。换句话说,您编写的代码(tableChanged闭包)会在bean.table更新时做出反应,例如,当一个新EventList的被分配给该字段时。

您必须编写 aListChangeListener以使列表更改适应列表大小。

于 2015-03-20T14:41:43.463 回答