2010-08-23 5 views
3

내가 TabControl을 따르고 모든 것이 제대로 작동하고 두 번째 tabitem으로 전환하면 문제없이 표시됩니다.WPF TabControl 메모리 문제

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

하지만 난이 XAML이있는 경우, 내가 기억 나는 무엇을 놓치고

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

제어

벗어나 두 번째 TabItem의를 클릭?

+1

질문에 XAML이 누락되었습니다. 해결되었습니다. – Arcturus

+1

XAML을 조금 더 보여줘야합니다. TabControls에서 사용하는 패널을 볼 필요가 있습니다 .- 엉덩이에서 쏴, D : DataGrid2의 TabControl은 Height = "Auto"또는 Height = "*"인 Grid Row 안에 배치됩니다. – Goblin

+0

예, 정확합니까? – TCoder

답변

0

요청에 따라 답변 게시 :-).

당신은 당신의 XAML의 좀 더 보여줄 필요가 -, 나는 DataGrid2TabControlHeight="Auto"Grid 내부에 배치 말하고 싶지만 엉덩이에서 촬영 - 우리는 당신이 TabControl의 주위에 사용하는 Panel를 볼 필요가 또는 Height="*".

0

질문 (엉덩이 응답에서 다른 촬영)에서 더 많은 XAML/코드를 보류 :

당신은 알고 있습니까 것이다 dynamically unload the visual tree within TabItems (and their contents) once they are tabbed out of view WPF의 TabControl에, 그리고 시각적 트리/데이터가 거기에 쓰레기 수집 할 수있다? 당신은 본질적으로 동시에 메모리에 모두

<TabControl> 
    <TabItem> //datagrid </TabItem> 
    <TabItem> //datagrid2 </TabItem> 
<TabControl> 
를로드하기 위해 .NET 프레임 워크를 필요로하는 위의 코드에서

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

: 두 번째 코드에 따라 두 개의 TabControls에있는 두 개의 DataGrids를 호스팅함으로써이 기능을 사용하지 니펫

두 DataGrid가 숨겨진 DataGrid에 필요한 메모리를 탭 전환 할 때 동일한 TabControl (위)의 TabItems에서 호스팅되는 예제는 가비지 수집 될 수 있습니다.