이것은 호기심에 관한 질문이며, 값 비싼 레이아웃에는 실용적이지 않습니다.Tabcontrol - 선택 변경로드/언로드
나는 다음과 같은 XAML
<Window x:Class="WpfApplication16.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStartupLocation="CenterScreen">
<TabControl ItemsSource="{Binding Items}">
<TabControl.ContentTemplate>
<DataTemplate>
<ScrollViewer>
<ContentPresenter Content="{Binding View}" />
</ScrollViewer>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</Window>
하고 창 모든 텍스트 상자가 이미 구축 된 초기화 그래서 전에
public class Item
{
public FrameworkElement View { get { return m_view; } }
public Item()
{
for (int i = 0; i < 3000; ++i)
{
m_view.Items.Add(new TextBox());
}
}
ItemsControl m_view = new ItemsControl();
}
public partial class MainWindow : Window
{
public List<Item> Items { get; private set; }
public MainWindow()
{
Items = new List<Item>();
for (int i = 0; i < 10; ++i)
{
Items.Add(new Item());
}
DataContext = this;
InitializeComponent();
}
}
뒤에 다음 코드, 모두 3 만하지만, 천국이 아직로드되지 않았습니다. 초기 선택이 수행 될 때와 같이 선택이 변경 될 때만로드/언로드됩니다. 나는 각 항목에 대해 처음에는 텍스트 상자의 양 때문에 잠시 동안 탭을 변경하려고하지만, 각 탭을 선택한 후에는 다시로드/언로드하는 데 오랜 시간이 걸리는 이유는 무엇입니까?
바인딩이 진행되지 않으며 탭을 변경하는 것보다 훨씬 빠르게 창 크기를 조정할 때 레이아웃 문제가 발생하지 않는다고 생각합니다. 메모리 사용량이 탭을 선택하는 사이에 증가하고 10 개가 모두 선택되고 다시 실행되면 상수가 유지됨에 따라 메모리 문제가 발생하지 않는다고 생각합니다.
또한 저는 의도적으로 시각화를 사용하지 않습니다.