所以我TabControl
在运行时将我的视图直接添加到 的 Items 集合中(而不是在它们周围创建 TabItems 并将这些 TabItems 添加到 TabControl)。视图公开了一个属性(围绕同名的 ViewModel 属性的包装器),该属性名为HasChanges
我要绑定到TabItem
的 Header 以显示星号 (*) 符号以识别具有未保存更改的选项卡,就像 VS 所做的那样。我已经尝试过使用 DataTemplates,但在访问DataTemplate
. 这样做的正确方法是什么?这是我的几次尝试之一:
<TabControl.ItemTemplate>
<DataTemplate DataType="UserControl">
<StackPanel Orientation="Horizontal" Margin="0" Height="22">
<TextBlock VerticalAlignment="Center" Text="{Binding HeaderText, RelativeSource={RelativeSource AncestorType=UserControl}}" />
<TextBlock Text="*" Visibility="{Binding HasChanges, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource B2VConverter}}" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
请注意,我正在为这两个TextBlock
s 尝试两种不同的绑定方法,但都不起作用。我的视图继承UserControl
并公开属性HasChanges
和HeaderText
.