我有类似这样的东西:
<Window>
<Window.Resources>
<DataTemplate DataType="{x:Type local:VM1}">
<!-- View 1 Here -->
</DataTemplate>
<DataTemplate DataType="{x:Type local:VM2}">
<!-- View 2 here -->
</DataTemplate>
<Window.Resources>
<ContentPresenter Content="{Binding}"/>
</Window>
这将自动在绑定不同的viewmodel时替换视图,非常方便。
然而,我有一个带TabControl和多个子视图的视图。每个子视图都有几个可视部分,由自定义xml文件配置(复杂的业务情况)。每次创建此视图时,都会解析xml文件,这会导致小延迟(1-2秒)。足以引起烦恼并使UI感觉迟缓。
是否有一种方法可以在不销毁和重新创建视图的情况下使用DataTemplate模式?如果可能的话,我宁愿不更改viewmodel。