-1

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

但是,我无法通过搜索网络来验证他的说法。每当我在 Internet 上搜索 WPF 性能优化时,我都会找到各种建议,但从未以任何方式提及将大型 XAML 文件拆分为较小的文件。

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

将我的大视图分解为最初可能不需要的每个部分的多个小 XAML 文件真的有意义吗?

4

1 回答 1

1

将我的大视图分解为最初可能不需要的每个部分的多个小 XAML 文件真的有意义吗?

从可维护性和可重用性的角度来看,是的。但是,从性能的角度来看,您是定义每个TabItem内联内容还是单独定义内容并不重要。UserControl

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

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

...相对于这样做:

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

您应该考虑采用 MVVM 设计模式并将 的ItemsSource属性绑定TabControlIEnumerable视图模型的属性并用于DataTemplates定义每个项目的外观,而不是内联定义所有内容。这样做,只有选定的内容TabItem将被加载到可视化树中。

于 2018-06-15T10:00:44.483 回答