У меня проблемы с подключением ComboBox.selectionModelProperty
к моей ViewModel.
Проблема заключается в том, что свойство имеет тип SingleSelectionModel
, который является интерфейсом и не очень легко реализовать. Моя идея состояла в том, чтобы создать экземпляр ObjectProperty<SingleSelectionModel>
во ViewModel и затем связать его с 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.
}
- Полагаю, это должно быть общей проблемой для тех, кто делает MVVM (или что-то подобное, в этом отношении), или я делаю что-то не так?
- Мое предположение заключается в том, что для ViewModel имеет смысл всегда создавать свои свойства / привязки, а затем иметь программный код представления для применения привязок - он должен «контролировать» жизненный цикл своих свойств / привязки и включает в себя их создание. Я прав?
- Другим вариантом будет иметь в моем ViewModel только свойство со значением, которое выберет мой выбор (скажем, Color), а затем в View будет выполнено преобразование в
SingleSelectionModel
, но это мне кажется, что API-интерфейсы на самом деле не ориентированы на это. Они?
Спасибо!