System.Windows.Controls.ItemsControl.OnItemContainerGeneratorChanged C# (CSharp) Method

OnItemContainerGeneratorChanged() private method

private OnItemContainerGeneratorChanged ( object sender, System.Windows.Controls.ItemsChangedEventArgs e ) : void
sender object
e System.Windows.Controls.ItemsChangedEventArgs
return void
		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;
			}
		}