JavaFX中的组合框中的MVVM和SingleSelectionModel

时间:2019-01-18 15:08:02

标签: java javafx mvvm data-binding

我在将ComboBox.selectionModelProperty连接到ViewModel时遇到麻烦。

问题在于该属性的类型为SingleSelectionModel,这是一个接口,并非真正易于实例化。我的想法是在ViewModel中实例化一个ObjectProperty<SingleSelectionModel>,然后将其绑定到ComboBox.selectionModelProperty

class ViewModel {
  val selectedService = new SimpleObjectProperty[SingleSelectionModel[ServiceId]]()
  ..

  // I want to set an initial value but now I have a problem.. 
  // there's no easy way of instantiating a SingleSelectionModel 
  // without resorting to roll out my own implementation of a 
  // SingleSelectionModel.
}
  1. 我想这对于执行MVVM的人(或类似的事情)必定是一个普遍的问题,或者我做错了什么?
  2. 我的观点是,对于ViewModel来说,始终创建其属性/绑定并随后在View的代码后面应用绑定是有意义的-它应该“控制”其属性/的生命周期/绑定,包括其创建。我说得对吗?
  3. 另一种选择是在ViewModel中仅具有一个属性,该属性具有我选择的值(假设是Color),然后由View来转换为SingleSelectionModel,但在我看来,API并非真正针对此目的。是吗?

谢谢!

0 个答案:

没有答案