Browse Source

Merge pull request #3191 from Gillibald/fixes/2699

Stop propagating the DataContext to a TabItem's content
release/0.9.0-preview5
Steven Kirk 6 years ago
committed by Dan Walmsley
parent
commit
2c816a1bd6
  1. 5
      src/Avalonia.Controls/Generators/TabItemContainerGenerator.cs
  2. 20
      tests/Avalonia.Controls.UnitTests/TabControlTests.cs

5
src/Avalonia.Controls/Generators/TabItemContainerGenerator.cs

@ -48,11 +48,6 @@ namespace Avalonia.Controls.Generators
tabItem[~ContentControl.ContentTemplateProperty] = Owner[~TabControl.ContentTemplateProperty];
}
if (tabItem.Content == null)
{
tabItem[~ContentControl.ContentProperty] = tabItem[~StyledElement.DataContextProperty];
}
return tabItem;
}
}

20
tests/Avalonia.Controls.UnitTests/TabControlTests.cs

@ -4,6 +4,7 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
@ -287,6 +288,25 @@ namespace Avalonia.Controls.UnitTests
Assert.Single(target.GetLogicalChildren(), content);
}
[Fact]
public void Should_Not_Propagate_DataContext_To_TabItem_Content()
{
var dataContext = "DataContext";
var tabItem = new TabItem();
var target = new TabControl
{
Template = TabControlTemplate(),
DataContext = dataContext,
Items = new AvaloniaList<object> { tabItem }
};
ApplyTemplate(target);
Assert.NotEqual(dataContext, tabItem.Content);
}
private IControlTemplate TabControlTemplate()
{
return new FuncControlTemplate<TabControl>((parent, scope) =>

Loading…
Cancel
Save