gpt4 book ai didi

WPF TabControl 与 Pages

转载 作者:行者123 更新时间:2023-12-04 05:51:20 32 4
gpt4 key购买 nike

我正在创建一个资源密集型仪表板应用程序,该应用程序将具有许多数据可视化领域。我认为最好使用框架并使用 WPF 页面一次加载所需的页面。这些页面也会有不同的数据上下文、安全限制等。但是,另一位开发人员说我可以使用 TabControl 完成同样的事情。

TabControl 是否在应用程序启动时一次加载所有选项卡中的所有项目?或者,我可以像 WPF 页面一样根据需要延迟加载它们(页面仅在导航到时加载内容)?此外,您可以为 TabControl 中的每个项目设置不同的数据上下文吗?

最佳答案

在 WPF 中,您可以使用 UI 虚拟化,这意味着只有可见控件被初始化和呈现。据我所知,TabControl默认情况下不支持 UI 虚拟化,但也许您可以手动添加它或使用其他控件。也许你想看看下面的article其中提出了一些性能提示。还提到 UI 和数据虚拟化之间存在差异。不显示控件并不意味着底层数据不在内存中。您的所有绑定(bind)目标都将被加载,但不会呈现控件。

对于您的第二个问题:是的,每个 TabItem可以有自己的DataContext .如果您使用 TabControls ItemsSource绑定(bind)项目列表,DataContext对于每个 TabItem将是列表中的一项。如果手动添加 TabItems ,可以设置DataContext像那样:

<TabControl>
<TabItem DataContext="{Binding Context1}" />
<TabItem DataContext="{Binding Context2}" />
</TabControl>

关于WPF TabControl 与 Pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000092/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com