【问题标题】:WPF Load Tab Content only when tab is selected仅在选择选项卡时 WPF 加载选项卡内容
【发布时间】:2022-08-15 20:38:20
【问题描述】:

我有 WPF 应用程序...

    <TabControl>
        <TabItem Header=\"General\">
            <usercontrol1 />
        </TabItem>
        <TabItem Header=\"Security\" >
          <usercontrol2 />
        </TabItem>
        <TabItem Header=\"Details\" >
          <usercontrol3 />
       </TabItem>
    </TabControl>

默认情况下,当我查看页面时会加载所有用户控件,只有在单击并激活选项卡时才需要加载每个用户控件。 我怎样才能实现这种行为?谢谢你 。

  • 如果您使用 mvvm,您可以虚拟化您的选项卡控件。绑定一组视图模型。为它们定义一个或多个数据模板。只有可见的选项卡内容将被实例化。
  • TabControl 只有一个内容宿主(用于显示选定的选项卡)。不明白你的意思。默认情况下只能呈现单个选项卡内容。
  • 也许您对 UserControl 的 Loaded 事件感兴趣?
  • 如果您像在帖子中那样在 xaml 中定义项目,那么它们都是在创建父视图时创建的。不难想象每个人都会发生一些昂贵的事情。传播它很可能意味着父视图已经启动并且可以更快地使用。

标签: wpf


【解决方案1】:

默认情况下,当我查看页面时会加载所有用户控件

仅在处理 XAML 时实例化它们才实际加载。

将您最初不想运行的任何代码移出构造函数,您应该没问题。

如果您不希望预先实例化(创建)控件,则需要从 XAML 标记中删除元素并按需创建它们,例如在 SelectionChanged 事件处理程序中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多