繁体   English   中英

如何打开在 TornadoFX 中打开的多个编辑器视图

[英]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将在它的范围内看到myModelmyModel2 ,以便它可以注入它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM