我有一个带有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的当前大小?提前谢谢..
答案 0 :(得分:0)
问题是,您正在观察对table
字段所做的更改,而不是您期望的table
字段的内容。换句话说,您在tableChanged
更新时所写的代码(bean.table
闭包)会做出反应,例如,当为该字段分配新的EventList
时。
您必须编写ListChangeListener
才能使列表更改适应列表大小。
答案 1 :(得分: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
)
它现在很漂亮..
谢谢