![](/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.