```class NotebookModel(notebook: Notebook? = null,...
# tornadofx
a
Copy code
class NotebookModel(notebook: Notebook? = null, pageManager: PageManager? = null, pageViewModels: List<PageViewModel>? = null) {
    val notebookProperty = SimpleObjectProperty(this, "", notebook)
    var notebook by notebookProperty

    val pageManagerProperty = SimpleObjectProperty(this, "", pageManager)
    var pageManager by pageManagerProperty

    val pageViewModelsProperty = SimpleListProperty(this, "", pageViewModels?.observable())
    var pageViewModels by pageViewModelsProperty

}

class NotebookViewModel(notebookModel: NotebookModel? = null): ItemViewModel<NotebookModel>() {
    val notebook = bind(NotebookModel::notebookProperty, autocommit = true)
    val pageManager = bind(NotebookModel::pageManagerProperty, autocommit = true)
    val pageViewModels = bind(NotebookModel::pageViewModelsProperty, autocommit = true)
}

class NotebookScope: Scope() {
    val model = NotebookViewModel()
}