【发布时间】:2016-11-23 11:21:50
【问题描述】:
我有一个 ObservableBuffer[T] 包含许多元素,ComboBox[T] 最有可能使用 toString() 方法显示这些元素。
T 类(现在假设它是可变的)有一个 name 字段,该字段在程序执行期间发生更改。
但是(显然)这不会触发 ComboBox 重新加载元素,这是一项要求。
我发现解决这个问题的唯一方法是通过不变性 - 从集合中删除给定元素并添加更新的元素:
/* Context */
val items: ObservableBuffer[T]
val beforeChange: T
val afterChange: T = beforeChange.changed
items -= beforeChange
items += afterChange
此解决方案有效,并且不变性始终是一件好事,所以我可能会继续使用它,但仍然好奇这种方法是否是唯一可行的方法。
【问题讨论】:
标签: scala events javafx scalafx