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 usaUserControls mas a solução oferecida lá exigiria que eu vinculasse a visualizações indesejávei

questionAnswers(10)

yourAnswerToTheQuestion