void OnItemContainerGeneratorChanged (object sender, ItemsChangedEventArgs e)
{
if (_presenter == null || _presenter._elementRoot is VirtualizingPanel)
return;
Panel panel = _presenter._elementRoot;
switch (e.Action) {
case NotifyCollectionChangedAction.Reset:
// the list has gone away, so clear the children of the panel
if (panel.Children.Count > 0)
RemoveItemsFromPresenter (new GeneratorPosition (0, 0), panel.Children.Count);
break;
case NotifyCollectionChangedAction.Add:
AddItemsToPresenter (e.Position, e.ItemCount);
break;
case NotifyCollectionChangedAction.Remove:
RemoveItemsFromPresenter (e.Position, e.ItemCount);
break;
case NotifyCollectionChangedAction.Replace:
RemoveItemsFromPresenter (e.Position, e.ItemCount);
AddItemsToPresenter (e.Position, e.ItemCount);
break;
}
}