Browse Source

Merge remote-tracking branch 'origin/master' into fixes/relative-panel

pull/4252/head
Dan Walmsley 6 years ago
parent
commit
d087fd5c16
  1. 5
      src/Avalonia.Controls/Presenters/CarouselPresenter.cs
  2. 2
      src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs
  3. 19
      tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

5
src/Avalonia.Controls/Presenters/CarouselPresenter.cs

@ -155,6 +155,11 @@ namespace Avalonia.Controls.Presenters
}
}
protected override void PanelCreated(IPanel panel)
{
ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
/// <summary>
/// Moves to the selected page, animating if a <see cref="PageTransition"/> is set.
/// </summary>

2
src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs

@ -229,8 +229,6 @@ namespace Avalonia.Controls.Presenters
}
PanelCreated(Panel);
ItemsChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
/// <summary>

19
tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

@ -60,6 +60,25 @@ namespace Avalonia.Controls.UnitTests.Presenters
Assert.IsType<ListBoxItem>(target.Panel.Children[1]);
}
[Fact]
public void Should_Create_Containers_Only_Once()
{
var parent = new TestItemsControl();
var target = new ItemsPresenter
{
Items = new[] { "foo", "bar" },
[StyledElement.TemplatedParentProperty] = parent,
};
var raised = 0;
parent.ItemContainerGenerator.Materialized += (s, e) => ++raised;
target.ApplyTemplate();
Assert.Equal(2, target.Panel.Children.Count);
Assert.Equal(2, raised);
}
[Fact]
public void ItemContainerGenerator_Should_Be_Picked_Up_From_TemplatedControl()
{

Loading…
Cancel
Save