所以我在運行時直接將我的視圖添加到TabControl
的Items集合(而不是圍繞它們創建TabItem並將這些TabItem添加到TabControl)。這些視圖公開了一個名爲HasChanges
的屬性(包裝在名稱相同的ViewModel屬性周圍),我想綁定到TabItem
的標題以顯示星號(*)標識以標識未保存更改的選項卡,就像VS一樣。我已經嘗試使用DataTemplates,但無法訪問DataTemplate
中的視圖對象。這樣做的正確方法是什麼?這裏是我的幾次嘗試之一:修改TabControl的標題
<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
。
+1但你能擴展一個完整的例子嗎?我對此非常陌生,並且試圖從我能夠掌握的任何東西中學習。謝謝你的時間。 – MoonKnight 2013-05-20 21:56:29