我有一个带有TabControl的视图,每个选项卡的内容都定义为TabControl.Resources中的Resource。在此内容中,我有一个用户控件,该控件基本上包含一个数据网格。
<TabControl ItemsSource="{Binding MyTabs}"
SelectionChanged="TabSelected">
<TabControl.Resources>
<DataTemplate DataType="{x:Type uc:Tab}">
<uc:MyUserControlWithDatagrid />
</DataTemplate>
</TabControl.Resources>
</TabControl>
令我惊讶的是,我注意到即使我有多个选项卡项目,我也只能在MyUserControlWithDatagrid的构造函数中输入一次。我猜它在所有选项卡项目之间“共享”吗?
如果这是正确的,我该如何做,以便为每个选项卡项目创建一个usercontrol实例?
答案 0 :(得分:0)
您可能想阅读this article有关选项卡虚拟化的信息。
您可以从here下载代码示例。
提出的解决方案使您可以定义自定义模板:
<TabControl ikriv:TabContent.IsCached="True">
<ikriv:TabContent.Template>
<DataTemplate>
<!-- custom content template goes here -->
</DataTemplate>
</ikriv:TabContent.Template>
</TabControl>