Stop TabControl de recriar seus filhos
Eu tenho umIList
de viewmodels que estão vinculados a umTabControl
. EsteIList
não mudará durante a vida útil doTabControl
.
<TabControl ItemsSource="{Binding Tabs}" SelectedIndex="0" >
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Content" Value="{Binding}" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
Cada modelo tem umDataTemplate
que é especificado em umResourceDictionary
.
<DataTemplate TargetType={x:Type vm:MyViewModel}>
<v:MyView/>
</DataTemplate>
Cada uma das visualizações especificadas no DataTemplate consome muitos recursos o suficiente para criar, preferindo criar cada visualização apenas uma vez, mas quando alterno as guias, o construtor da visualização relevante é chamado. Pelo que li, esse é o comportamento esperado para oTabControl
, mas não está claro para mim qual é o mecanismo que chama o construto
Eu dei uma olhada em uma pergunta semelhante que usaUserControl
s mas a solução oferecida lá exigiria que eu vinculasse a visualizações indesejávei