1

私は変更を観察し、その size() をビューのフィールドにバインドしようとしている glazedlist を備えた griffon 1.5 アプリケーションを持っています..

私のモデルでは

@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

問題は、期待どおりtableにフィールドの内容ではなく、フィールドに加えられた変更を観察していることです。tableつまり、作成したコード (tableChangedクロージャー)bean.tableは、更新されたときに反応します。たとえば、EventListそのフィールドに new が割り当てられたときなどです。

ListChangeListenerリストの変更をリストのサイズに適応させるには、 a を記述する必要があります。

于 2015-03-20T14:41:43.463 に答える
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 に答える