在进行一些更改后刷新所有数据的最流畅(简单且设计良好)的方法是什么?我有一个应用程序,可以在其中打开多个显示相同数据的窗口。用户可以在其中一个窗口中编辑一个节点,但我需要在每个视图中刷新该节点(或其子节点)。
示例: 我使用 TopComponent中的OutlineView使用ExplorerView,它以树形结构显示所有章节。但是我可以多次打开这个窗口(比如 MS Word 中的“新窗口”,它是同一数据的另一个“视图”)。当我更改一章的标题时,我需要在所有可见的地方(在所有展开的节点中)刷新它。
我看到了一种解决方案,但它有一些优点和缺点:进行我自己的查找并将所有打开的 ExplorerViews 的所有打开的根节点存储在其中。然后在每次编辑时,只需循环浏览所有打开的根节点并在它们上调用一些方法来重新创建查看的结构(调用 setChildren ......就像第一次显示时一样)。但是树视图崩溃了。如果我要创建一些机制,一些 OutlineView 的实现,它会记住所有展开的节点,所以它会重新创建展开的树(但不是整个树,只是原样),它可能需要一些时间,当数据太多了,对吧?