tab*_*ina 10 wpf binding tabcontrol datatemplate mvvm
我想在不同页面是TabItems的应用程序中使用MVVM.
为此,我使用了一个可观察的视图模型(Items)集合,并将其绑定到tabcontrols ItemSource.
对于每个视图模型,我创建了一个单独的数据模板来呈现正确的视图,如下所示:
<DataTemplate DataType="{x:Type baseVm:AViewModel}">
<baseVw:AView />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
要在选项卡的标题中显示正确的名称,我创建了另一个数据模板,以应用于每个选项卡控件的元素:
<DataTemplate x:Key="ViewModelTabTemplate">
<DockPanel>
<ContentPresenter Content="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
选项卡控件如下所示:
<TabControl x:Name="myTabControl"
ItemsSource="{Binding Items}"
ItemTemplate="{DynamicResource ViewModelTabTemplate}">
</TabControl>
Run Code Online (Sandbox Code Playgroud)
我现在要做的是在包含集合的视图模型中启用/禁用选项卡.视图模型的基类包含一个依赖项属性IsEnabled,我想将它绑定到视图.如果我直接在视图中这样做:
IsEnabled="{Binding IsEnabled, FallbackValue=true}"
Run Code Online (Sandbox Code Playgroud)
当我将IsEnabled属性设置为false时,标签页的内容被禁用.但我真正想要的是也禁用tabpage的标签而不仅仅是内容.
谢谢你的帮助!
Dro*_*ror 22
也许你可以试试这样的东西 -
<TabControl>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4747 次 |
最近记录: |