wpf - wpf通过绑定启用 TabItem

  显示原文与译文双语对照的内容
114 1

我想在一个应用程序中使用 MVVM,其中不同的页面是 TabItems 。

为此,我使用视图模型( 项目)的一个可见集合,并将它的绑定到 tabcontrols ItemSource 。

对于每个视图模型,我创建了一个单独的数据模板,以呈现如下所示的正确视图:

<DataTemplate DataType="{x:Type baseVm:AViewModel}">
 <baseVw:AView/> 
</DataTemplate>

为了在选项卡标头中显示正确的名称,我创建了另一个数据模板,用于控制的每个选项卡元素:

<DataTemplate x:Key="ViewModelTabTemplate">
 <DockPanel>
 <ContentPresenter Content="{Binding Path=Name}"/>
 </DockPanel>
</DataTemplate>

选项卡控件的外观如下:

<TabControl x:Name="myTabControl" 
 ItemsSource="{Binding Items}" 
 ItemTemplate="{DynamicResource ViewModelTabTemplate}">
</TabControl>

现在我要做的是在包含集合的视图模型中启用/禁用选项卡。模型类的视图基包含一个依赖属性 IsEnabled,我想将它绑定到视图。如果我这样直接在视图中执行这里操作:

IsEnabled="{Binding IsEnabled, FallbackValue=true}"

将IsEnabled属性转换为 false 时,页的选项卡内容被禁用。但是我真正想要的是禁用tabpage的标签,而不仅仅是内容。

感谢你的帮助!

时间:原作者:0个回答

73 2

也许你可以试试这样的东西-

<TabControl>
 <TabControl.ItemContainerStyle>
 <Style TargetType="{x:Type TabItem}">
 <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/> 
 </Style>
 </TabControl.ItemContainerStyle>
</TabControl>
原作者:
...