我正在挠头,试图弄清楚为什么BeanItem的属性不会更新组件Field的值 - 不止一次:(。
class MyComponent extends CustomComponent {
TextField firstNames
BeanItem<MyObject> bean = new BeanItem<MyObject>(new MyObject())
MyComponent() {
Layout layout = new FormLayout()
setCompositionRoot(layout)
firstNames = new TextField("First Names")
layout.addComponent(firstNames)
FieldGroup binder = new FieldGroup(bean)
binder.bindMemberFields(this)
}
void setFromAccount(MyObject newObject) {
bean.getItemProperty("firstNames").setValue(newObject.firstNames)
}
}
第一次调用setFromAccount
时,屏幕上会更新firstNames文本字段的值。第二次它不是,第一个值仍然存在。
有谁知道发生了什么?我认为每当我在底层属性上设置值时,所有内容都通过内部侦听器进行更新。为什么它只是第一次发生?