[英]WPF Tab Control to use different ItemTemplate for the first tab only
我正在使用帶有 TabControl 的 WPF。 我定義了一個 ItemTemplate,它為標題設置一個 TextBlock 和一個用於關閉選項卡的按鈕。 我希望第一個選項卡不顯示關閉按鈕。 我嘗試使用 Binding to a Public bool 在我的 ViewModel 中設置按鈕的 Visiblity 並使用 BooleanToVisibilityConverter 進行轉換,但看起來 ItemTemplate 是在創建 TabControl 時呈現的,而不是在添加每個 Tab 時呈現。
這是我的 TabControl xaml(我嘗試過使用和不使用 FallbackValue)
<TabControl x:Name="Items" Grid.Row="1" Grid.Column="0">
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding DisplayName}" />
<Button x:Name="CloseTab" Content="X" Visibility="{Binding IsTabCloseButtonVisible, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Hidden}"
cal:Message.Attach="DeactivateItem($dataContext, 'true')" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
在 App.xaml 我有轉換器
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<local:Bootstrapper x:Key="Bootstrapper"/>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</ResourceDictionary>
</Application.Resources>
在 ViewModel 我有一個公共財產
private bool _isTabCloseButtonVisible;
public bool IsTabCloseButtonVisible
{
get { return _isTabCloseButtonVisible; }
set
{
_isTabCloseButtonVisible = value;
NotifyOfPropertyChange(() => IsTabCloseButtonVisible);
}
}
我已經測試了通過將 Textblock 綁定到 IsTabCloseButtonVisible 來設置屬性,並且它從 false 變為 true。
是否有可能實現我想要做的事情?
我已經設法解決了這個問題。 我在錯誤的 ViewModel 中有該屬性,因此它沒有被綁定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.