![](/img/trans.png)
[英]Kotlin|Tornadofx: How to open new fxml screen on mouse click in another fxml screen
[英]How to open multiple editor views open in TornadoFX
我一直在关注这里的指南,它给出了一个使用 ViewModel 的编辑器示例。
我希望改变这一点,而不是将单个编辑器重新绑定到每个域对象进行编辑,而是每个对象将调出自己单独的编辑器。
我想继续使用 ViewModel,因为我喜欢它们提供的分离和它们拥有的 API(轻松回滚/保存)。
我应该如何处理为每个域对象打开一个编辑器(特别是在 TornadoFX 方式中)?
解决方案是为新编辑器创建一个新范围,并将相关模型插入到该新范围中。 如果您正在使用工作区,这是使用内置函数完成的,例如dockInNewScope
:
workspace.dockInNewScope<MyEditor>(myModel1, myModel2, etc)
如果您不使用 Workspace,您可以手动创建一个新范围,将模型放入其中并在新范围中查找视图:
val newScope = Scope(myModel1, myModel2)
find<MyEditor>(newScope).openWindow()
在这个实例中, MyEditor
将在它的范围内看到myModel
和myModel2
,以便它可以注入它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.