通过绑定启用 TabItem
Posted
技术标签:
【中文标题】通过绑定启用 TabItem【英文标题】:Enable a TabItem via Binding 【发布时间】:2012-03-06 16:15:17 【问题描述】:我想在不同页面是 TabItems 的应用程序中使用 MVVM。
为此,我使用我的视图模型(项目)的可观察集合并将其绑定到选项卡控件 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 时,标签页的内容被禁用。但我真正想要的是同时禁用标签页的标签,而不仅仅是内容。
感谢您的帮助!
【问题讨论】:
【参考方案1】:也许你可以试试这样的 -
<TabControl>
<TabControl.ItemContainerStyle>
<Style TargetType="x:Type TabItem">
<Setter Property="IsEnabled" Value="Binding IsEnabled"/>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
【讨论】:
非常感谢!这正是我想要的。以上是关于通过绑定启用 TabItem的主要内容,如果未能解决你的问题,请参考以下文章
powershell 启用或禁用网络绑定(即禁用IPv4或启用IPv6)