void AddItemsToPresenter(GeneratorPosition position, int count)
{
if (_presenter == null || _presenter._elementRoot == null || _presenter._elementRoot is VirtualizingPanel)
{
return;
}
Panel panel = _presenter._elementRoot;
int newIndex = ItemContainerGenerator.IndexFromGeneratorPosition(position);
using (var p = ItemContainerGenerator.StartAt(position, GeneratorDirection.Forward, true))
for (int i = 0; i < count; i++)
{
var item = Items [newIndex + i];
DependencyObject container = null;
bool fresh;
container = ItemContainerGenerator.GenerateNext(out fresh);
ContentControl c = container as ContentControl;
if (c != null)
{
c.ContentSetsParent = false;
}
FrameworkElement f = container as FrameworkElement;
if (f != null && !(item is FrameworkElement))
{
f.DataContext = item;
}
panel.Children.Insert(newIndex + i, (UIElement)container);
ItemContainerGenerator.PrepareItemContainer(container);
}
}