2010-08-23 73 views
3

如果我有下面的TabControl,並且一切正常,當我切換到第二個tabitem時,它只顯示沒有問題。WPF TabControl內存問題

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

但是,如果我有這樣的XAML,當我點擊第二TabItem的記憶失控

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

我缺少什麼呢?

+1

你在你的問題中缺少XAML似乎..修復它爲你 – Arcturus 2010-08-23 11:22:55

+1

你需要更多地展示你的XAML - 我們需要看到圍繞TabControls使用的面板 - 從臀部拍攝, d說DataGrid2的TabControl放置在高度=「自動」或高度=「*」的網格行裏面 – Goblin 2010-08-23 11:50:44

+0

是的,你說的對,我應該把它做成一個確定的高度? – TCoder 2010-08-23 12:12:43

回答

0

按要求發佈答案:-)。

你需要表現出更多一點的XAML的 - 我們需要看到你周圍的TabControl s使用Panel - 從臀部拍攝,我想說的DataGrid2TabControl被放置在Grid 內側Height="Auto"Height="*"

0

的問題(從髖關節回答另一個拍攝)待更多的XAML /代碼:

你知道,在TabControl的WPF將dynamically unload the visual tree within TabItems (and their contents) once they are tabbed out of view和Visual樹/數據可以在其中被垃圾收集?通過舉辦在兩個獨立的TabControls兩個DataGrid中,按您的第二代碼片段禁用此功能:

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

在上面的代碼,你基本上需要.NET框架,兩者同時進行加載到內存

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

當您切換選項卡隱藏的DataGrid所需的內存時,同一個TabControl(上面)中的兩個DataGrid都駐留在TabItem中的示例可以被垃圾收集。