几个WPF- / XAML文件比一个大文件表现更好?

时间:2018-06-15 09:36:59

标签: wpf performance xaml

我最近在谈论另一个正在查看我的WPF应用程序的GUI开发人员。他建议将我非常大的WPF视图(文件)分解为几个较小的视图。根据他的说法,这应该提升加载性能,因为从UserControls加载到单独文件中的元素只有在实际进入视图时才会呈现。 在我的主视图中,我目前拥有超过10k行的XAML。由于这个视图的主要部分是一个带有几个大TabItem的大TabControl,因此很容易将每个TabItem的内容传输到一个单独的文件中。确实,大多数选项卡不会被每个用户使用,或者至少在启动后不会直接使用。

然而,我无法通过搜索网络来证实他的主张。每当我在互联网上搜索WPF性能优化时,我都会找到各种建议,但是从未将大型XAML文件拆分成较小的文件。

就我个人而言,每个视图都有一个大的XAML更舒适,在我的情况下,可重用性确实不是问题。所以现在我想知道:

将我的大型视图分解为每个可能一开始不需要的部分的小型XAML文件真的有意义吗?

1 个答案:

答案 0 :(得分:1)

  

将我的大型视图分解为每个可能一开始不需要的部分的小型XAML文件真的有意义吗?

从可维护性和可重用性的角度来看,是的。但是,从性能的角度来看,无论是内联还是在单独的TabItem中定义每个UserControl的内容都无关紧要。

因此,您不会因此而获得任何性能优势:

<TabItem>
    <local:UserControl1 />
</TabItem>

...而不是这样做:

<TabItem>
    <Grid>
       ...
    </Grid>
</TabItem>

您应该考虑采用MVVM设计模式并将ItemsSource的{​​{1}}属性绑定到视图模型的TabControl属性,并使用IEnumerable来定义外观每个项目,而不是内联定义所有内容。这样做,只会将所选DataTemplates的内容加载到可视树中。