У меня есть IList видмоделей, привязанных к TabControl. Этот IList не изменится на время жизни TabControl.
<TabControl ItemsSource="{Binding Tabs}" SelectedIndex="0" >
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Content" Value="{Binding}" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
Каждая модель просмотра имеет DataTemplate, которая указана в ResourceDictionary.
<DataTemplate TargetType={x:Type vm:MyViewModel}>
<v:MyView/>
</DataTemplate>
Каждый из представлений, указанных в DataTemplate, достаточно ресурсоемкий, чтобы создать то, что я хотел бы создать каждый вид только один раз, но когда я переключаю вкладки, вызывается конструктор для соответствующего представления. Из того, что я прочитал, это ожидаемое поведение для TabControl, но мне непонятно, что этот механизм вызывает конструктор.
Я рассмотрел аналогичный вопрос, который использует UserControl s, но предлагаемое там решение потребует от меня привязки к представлениям, которые нежелательны.
