WPF TabControl内存问题

时间:2010-08-23 11:21:07

标签: wpf

如果我有跟随TabControl,一切正常,当我切换到第二个tabitem时,它只显示没有问题。

<TabControl>
   <TabItem> //datagrid </TabItem>
   <TabItem> //datagrid2 </TabItem>
<TabControl>

但如果我有这个xaml,当我点击第二个tabitem时,内存失控

<TabControl>
   <TabItem> //datagrid </TabItem>
<TabControl>
<TabControl>
   <TabItem> //datagrid2 </TabItem>
<TabControl>

我错过了什么?

2 个答案:

答案 0 :(得分:0)

按要求发布答案: - )。

你需要展示更多的XAML - 我们需要看到你在Panel周围使用的TabControl - 从臀部拍摄,我会说DataGrid2我的TabControl位于Grid RowHeight="Auto"Height="*"

答案 1 :(得分:0)

在问题中等待更多xaml /代码(来自髋关节答案的另一个镜头):

您是否知道WPF中的TabControl将dynamically unload the visual tree within TabItems (and their contents) once they are tabbed out of view,并且其中的可视树/数据可以被垃圾收集?根据您的第二个代码段,将两个DataGrids托管在两个单独的TabControl中,您可以禁用此功能:

<TabControl>
   <TabItem> //datagrid </TabItem>
<TabControl>
<TabControl>
   <TabItem> //datagrid2 </TabItem>
<TabControl>

在上面的代码中,您基本上要求.NET框架同时将两者加载到内存中

<TabControl>
   <TabItem> //datagrid </TabItem>
   <TabItem> //datagrid2 </TabItem>
<TabControl>

在切换标签时,同一个TabControl(上图)中的两个DataGrids都托管在TabItems中的示例可以对隐藏的DataGrid所需的内存进行垃圾回收。