如果我有跟随TabControl,一切正常,当我切换到第二个tabitem时,它只显示没有问题。
<TabControl>
<TabItem> //datagrid </TabItem>
<TabItem> //datagrid2 </TabItem>
<TabControl>
但如果我有这个xaml,当我点击第二个tabitem时,内存失控
<TabControl>
<TabItem> //datagrid </TabItem>
<TabControl>
<TabControl>
<TabItem> //datagrid2 </TabItem>
<TabControl>
我错过了什么?
答案 0 :(得分:0)
按要求发布答案: - )。
你需要展示更多的XAML - 我们需要看到你在Panel
周围使用的TabControl
- 从臀部拍摄,我会说DataGrid2
我的TabControl
位于Grid
Row
内Height="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所需的内存进行垃圾回收。