@ -20,6 +20,8 @@ namespace Avalonia.Controls.Presenters
/// </summary>
/// </summary>
internal class ItemVirtualizerSimple : ItemVirtualizer
internal class ItemVirtualizerSimple : ItemVirtualizer
{
{
private int _ anchor ;
/// <summary>
/// <summary>
/// Initializes a new instance of the <see cref="ItemVirtualizerSimple"/> class.
/// Initializes a new instance of the <see cref="ItemVirtualizerSimple"/> class.
/// </summary>
/// </summary>
@ -362,7 +364,10 @@ namespace Avalonia.Controls.Presenters
if ( panel . OverflowCount > 0 )
if ( panel . OverflowCount > 0 )
{
{
RemoveContainers ( panel . OverflowCount ) ;
if ( _ anchor < = FirstIndex )
{
RemoveContainers ( panel . OverflowCount ) ;
}
}
}
}
}
@ -540,7 +545,9 @@ namespace Avalonia.Controls.Presenters
// it means we're running a unit test.
// it means we're running a unit test.
if ( container ! = null & & layoutManager ! = null )
if ( container ! = null & & layoutManager ! = null )
{
{
_ anchor = index ;
layoutManager . ExecuteLayoutPass ( ) ;
layoutManager . ExecuteLayoutPass ( ) ;
_ anchor = - 1 ;
if ( newOffset ! = - 1 & & newOffset ! = OffsetValue )
if ( newOffset ! = - 1 & & newOffset ! = OffsetValue )
{
{