gpt4 book ai didi

wpf - 通过绑定(bind)启用 TabItem

转载 作者:行者123 更新时间:2023-12-04 02:56:42 25 4
gpt4 key购买 nike

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

为此,我使用我的 View 模型(项目)的可观察集合并将其绑定(bind)到选项卡控件 ItemSource。

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

<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>

我现在要做的是从包含集合的 View 模型中启用/禁用选项卡。 View 模型的基类包含一个依赖属性 IsEnabled,我想将它绑定(bind)到 View 。如果我直接在这样的 View 中执行此操作:
IsEnabled="{Binding IsEnabled, FallbackValue=true}"

当我将 IsEnabled 属性设置为 false 时,标签页的内容被禁用。但我真正想要的是禁用标签页的标签,而不仅仅是内容。

谢谢你的帮助!

最佳答案

也许你可以尝试这样的事情 -

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

关于wpf - 通过绑定(bind)启用 TabItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com