diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml b/samples/ControlCatalog/Pages/TabControlPage.xaml index e289de90f9..a775056ebe 100644 --- a/samples/ControlCatalog/Pages/TabControlPage.xaml +++ b/samples/ControlCatalog/Pages/TabControlPage.xaml @@ -53,7 +53,7 @@ diff --git a/src/Avalonia.Controls/TabControl.cs b/src/Avalonia.Controls/TabControl.cs index 952a9e448c..a6085e53cd 100644 --- a/src/Avalonia.Controls/TabControl.cs +++ b/src/Avalonia.Controls/TabControl.cs @@ -57,12 +57,6 @@ namespace Avalonia.Controls /// public static readonly StyledProperty SelectedContentTemplateProperty = AvaloniaProperty.Register(nameof(SelectedContentTemplate)); - - /// - /// Defines the property - /// - public static readonly StyledProperty HeaderDisplayMemberBindingProperty = - AvaloniaProperty.Register(nameof(HeaderDisplayMemberBinding)); /// /// The default value for the property. @@ -141,16 +135,6 @@ namespace Avalonia.Controls get { return GetValue(SelectedContentTemplateProperty); } internal set { SetValue(SelectedContentTemplateProperty, value); } } - - /// - /// Gets or sets the to use for binding to the display member of each tab-items header. - /// - [AssignBinding] - public IBinding? HeaderDisplayMemberBinding - { - get { return GetValue(HeaderDisplayMemberBindingProperty); } - set { SetValue(HeaderDisplayMemberBindingProperty, value); } - } internal ItemsPresenter? ItemsPresenterPart { get; private set; } @@ -172,8 +156,12 @@ namespace Avalonia.Controls { base.PrepareContainerForItemOverride(element, item, index); - if (element is HeaderedContentControl hcc && ContentTemplate is { } ct) - hcc.ContentTemplate = ct; + if (element is TabItem tabItem) + { + if (ContentTemplate is { } ct) + tabItem.ContentTemplate = ct; + tabItem.SetValue(TabStripPlacementProperty, TabStripPlacement); + } if (index == SelectedIndex && element is ContentControl container) { @@ -268,5 +256,13 @@ namespace Avalonia.Controls } } } + + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + { + base.OnPropertyChanged(change); + + if (change.Property == TabStripPlacementProperty) + RefreshContainers(); + } } }