小编Mik*_*ike的帖子

停止TabControl重新创建其子项

我有一个IList绑定到a的viewmodels TabControl.这IList不会改变整个生命周期TabControl.

<TabControl ItemsSource="{Binding Tabs}" SelectedIndex="0" >
    <TabControl.ItemContainerStyle>
        <Style TargetType="TabItem">
            <Setter Property="Content" Value="{Binding}" />
        </Style>
    </TabControl.ItemContainerStyle>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

每个viewmodel都有一个DataTemplate在a中指定的ResourceDictionary.

<DataTemplate TargetType={x:Type vm:MyViewModel}>
    <v:MyView/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

DataTemplate中指定的每个视图都是资源密集型的,足以创建我只想创建每个视图一次,但是当我切换选项卡时,会调用相关视图的构造函数.从我所读到的,这是预期的行为TabControl,但我不清楚调用构造函数的机制是什么.

我已经看过一个使用UserControls 的类似问题,但是那里提供的解决方案需要我绑定到不受欢迎的视图.

c# wpf tabcontrol datatemplate mvvm

34
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×1

datatemplate ×1

mvvm ×1

tabcontrol ×1

wpf ×1