我的ViewModel中有两个<div class=wrap>
<div id=txt-bar>txt-bar</div>
<div id=image><img src=https://placeholdit.imgix.net/~text?txtsize=28&txt=300%C3%97300&w=300&h=300></div>
<div id=main-content-area>main-content-area</div>
</div>
个。两者都是相同的泛型类型。
窗口有两个ObservableCollection
,每个ItemsControl
绑定在ViewModel自己的ItemsSource
上。
两者使用相同的ObservableCollection
。这个ItemTemplate
是非常复杂的用户控件。
这一切都完全由这本书完成。
在某些情况下,我会将项目从一个集合移动到另一个集合。 UI正确更新。但是,由于控件很复杂,在新ItemTemplate
中重新创建时需要大约1-2秒进行渲染。由于这种情况发生在拖放操作上,因此用户不友好。
我想要做的是以某种方式保留源ItemsControl
的{{1}}的现有实例,并在目标中重复使用它。我不知道是否有可能,我在网上找不到任何关于它的信息。
我相信设置相当简单,但如果需要,我会编写一些简化版本的代码(我无法分享实际代码)。
感谢您的帮助。
答案 0 :(得分:0)
我想要做的是以某种方式从源ItemsControl保留ItemTemplate的现有实例并在目标中重用它。我不知道是否有可能,我无法在网上找到任何相关信息。
恐怕不是。当您从可视树中断开元素,然后在稍后阶段将其添加回另一个父元素时,将重新呈现构成控件的所有元素。