WPF Tabcontrol DataTemplate和子用户控件初始化

问题描述 投票:0回答:1

我有一个带TabControl的视图,每个选项卡的内容在TabControl.Resources中定义为一个资源。在这个内容中,我有一个用户控件,它基本上包含一个datagrid。

<TabControl ItemsSource="{Binding MyTabs}"
            SelectionChanged="TabSelected">
    <TabControl.Resources>
        <DataTemplate DataType="{x:Type uc:Tab}">
            <uc:MyUserControlWithDatagrid />
        </DataTemplate>
    </TabControl.Resources>
</TabControl>

令我惊讶的是,我注意到即使我有多个标签项,我也只在MyUserControlWithDatagrid的构造函数中输入一次。我猜它是在所有标签项之间“共享”的?

如果这是正确的,我该如何创建它以便为每个标签项创建一个usercontrol实例?

wpf user-controls datatemplate
1个回答
0
投票

您可能想阅读有关标签虚拟化的this article

您可以从here下载代码示例。

建议的解决方案使您可以定义自定义模板:

<TabControl ikriv:TabContent.IsCached="True">
    <ikriv:TabContent.Template>
        <DataTemplate>
            <!-- custom content template goes here -->
        </DataTemplate>
    </ikriv:TabContent.Template>
</TabControl>
© www.soinside.com 2019 - 2024. All rights reserved.