我正在尝试更新组合框的内容(使用Griffon 1.2.0,使用JavaFX插件)。
我的模特:
class MyModel {
List monthList = FXCollections.observableList([new DateMidnight()])
def convertDate = [
fromString: { String s ->
return new DateMidnight(DateTimeFormat.forPattern("yyyy-MM").parseDateTime(s))
},
toString: { DateMidnight d ->
return "2011-10"
}
] as StringConverter
}
我的观点包含:
comboBox(items: (model.monthList), converter: model.convertDate)
现在我有一个控制器动作,当他们按下按钮时会被调用:
def load = {
execInsideUIAsync {
def months = myService.buildMonthList()
model.monthList.addAll(months)
}
}
问题是组合框内容永远不会改变。任何人都可以帮助我理解我所缺少的东西吗?
还没有关于ComboBox的文档http://groovyfx.org/docs/guide/single.html#choiceBoxComboBox
另外,我是否正确实现了转换器?
答案 0 :(得分:0)
问题是GroovyFX.comboBox创建了一个新的List,而不是使用你传递的项目作为参数:tableView也会出现这个问题。一个临时的解决方法是直接设置items属性,比如
comboBox(id: 'combo')
noparent { combo.items = model.monthList }