【发布时间】:2014-04-15 20:08:35
【问题描述】:
我有这样的事情:
<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>
这会在我绑定不同的视图模型时自动换出视图,非常方便。
但是,我有一个带有选项卡控件和许多子视图的视图。每个子视图都有几个由自定义 xml 文件(复杂业务案例)配置的可视化部分。每次创建此视图时,都会解析 xml 文件,这会导致一小段(1-2 秒)延迟。延迟已经够烦人了,让 UI 感觉迟钝了。
有没有办法在每次绑定视图模型时使用 DataTemplate 模式而不破坏和重新创建视图?如果可能,我宁愿不更改视图模型。
【问题讨论】:
-
您的问题缺少很多信息。为什么每次都解析xml文件? XML 文件数据如何影响您正在创建的视图?你能给出一个至少简化的场景吗?
-
回答这个问题不需要这些。我不想重构视图或视图模型。我只是想问是否有一种方法可以使用 DataTemplates 而不会在每次绑定视图模型时破坏视图。
标签: c# wpf datatemplate