Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Controls / VirtualizingPanel.cs / 1 / VirtualizingPanel.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using MS.Internal; using MS.Utility; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Windows.Media; using System.Windows.Controls.Primitives; // IItemContainerGenerator namespace System.Windows.Controls { ////// A base class that provides access to information that is useful for panels that with to implement virtualization. /// public abstract class VirtualizingPanel : Panel { ////// The default constructor. /// protected VirtualizingPanel() : base(true) { } ////// The generator associated with this panel. /// public IItemContainerGenerator ItemContainerGenerator { get { return Generator; } } ////// Adds a child to the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// generates a new child. This method circumvents some validation /// that occurs in UIElementCollection.Add. /// /// Child to add. protected void AddInternalChild(UIElement child) { AddInternalChild(InternalChildren, child); } ////// Inserts a child into the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// generates a new child. This method circumvents some validation /// that occurs in UIElementCollection.Insert. /// /// The index at which to insert the child. /// Child to insert. protected void InsertInternalChild(int index, UIElement child) { InsertInternalChild(InternalChildren, index, child); } ////// Removes a child from the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// re-virtualizes a new child. This method circumvents some validation /// that occurs in UIElementCollection.RemoveRange. /// /// /// protected void RemoveInternalChildRange(int index, int range) { RemoveInternalChildRange(InternalChildren, index, range); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void AddInternalChild(UIElementCollection children, UIElement child) { children.AddInternal(child); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void InsertInternalChild(UIElementCollection children, int index, UIElement child) { children.InsertInternal(index, child); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void RemoveInternalChildRange(UIElementCollection children, int index, int range) { children.RemoveRangeInternal(index, range); } ////// Called when the Items collection associated with the containing ItemsControl changes. /// /// sender /// Event arguments protected virtual void OnItemsChanged(object sender, ItemsChangedEventArgs args) { } ////// Called when the UI collection of children is cleared by the base Panel class. /// protected virtual void OnClearChildren() { } ////// Generates the item at the specified index and calls BringIntoView on it. /// /// Specify the item index that should become visible protected internal virtual void BringIndexIntoView(int index) { } internal override void OnItemsChangedInternal(object sender, ItemsChangedEventArgs args) { switch (args.Action) { case NotifyCollectionChangedAction.Add: case NotifyCollectionChangedAction.Remove: case NotifyCollectionChangedAction.Replace: case NotifyCollectionChangedAction.Move: // Don't allow Panel's code to run for add/remove/replace/move break; default: base.OnItemsChangedInternal(sender, args); break; } OnItemsChanged(sender, args); } internal override void OnClearChildrenInternal() { OnClearChildren(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommandField.cs
- AnimationClock.cs
- DynamicHyperLink.cs
- DisposableCollectionWrapper.cs
- ContractUtils.cs
- WindowAutomationPeer.cs
- BoundPropertyEntry.cs
- X509PeerCertificateAuthentication.cs
- ServiceObjectContainer.cs
- AssemblyAssociatedContentFileAttribute.cs
- LocalizableResourceBuilder.cs
- EntitySqlException.cs
- nulltextnavigator.cs
- EntityDataSourceDesignerHelper.cs
- ColumnTypeConverter.cs
- AutoResetEvent.cs
- WorkflowMarkupSerializer.cs
- QuestionEventArgs.cs
- DrawingGroup.cs
- MessageEncodingBindingElement.cs
- CheckoutException.cs
- AutomationPattern.cs
- InertiaRotationBehavior.cs
- DbFunctionCommandTree.cs
- StringExpressionSet.cs
- WithParamAction.cs
- BitmapEffectDrawing.cs
- DateTimeOffsetStorage.cs
- DataMemberAttribute.cs
- Main.cs
- BitmapEffectDrawingContextWalker.cs
- DescendantQuery.cs
- RecordConverter.cs
- DataPagerField.cs
- ButtonChrome.cs
- PageTheme.cs
- Ref.cs
- OdbcConnectionFactory.cs
- TemplateBamlTreeBuilder.cs
- DoubleAnimation.cs
- DbProviderConfigurationHandler.cs
- ThicknessAnimation.cs
- ListBox.cs
- HWStack.cs
- OdbcParameter.cs
- UntypedNullExpression.cs
- SR.cs
- ReflectionPermission.cs
- SrgsRule.cs
- WebRequest.cs
- TransactedBatchingElement.cs
- FormatSettings.cs
- LineServices.cs
- EncryptedXml.cs
- InvalidPropValue.cs
- ToolStripItemRenderEventArgs.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- WindowManager.cs
- ObjectListGeneralPage.cs
- FacetValueContainer.cs
- MouseGestureValueSerializer.cs
- WebPartDescriptionCollection.cs
- MachineKeyConverter.cs
- ErrorWebPart.cs
- datacache.cs
- PrivilegedConfigurationManager.cs
- Transactions.cs
- WorkingDirectoryEditor.cs
- BitmapEffectState.cs
- ElementNotAvailableException.cs
- EditorServiceContext.cs
- CounterSampleCalculator.cs
- Rfc2898DeriveBytes.cs
- OletxResourceManager.cs
- ParameterToken.cs
- KeyToListMap.cs
- DbDataRecord.cs
- WorkflowDesignerColors.cs
- DBNull.cs
- FormClosingEvent.cs
- WithParamAction.cs
- uribuilder.cs
- StringAttributeCollection.cs
- IImplicitResourceProvider.cs
- PathNode.cs
- CodeMemberField.cs
- ContainerUIElement3D.cs
- EastAsianLunisolarCalendar.cs
- _LocalDataStoreMgr.cs
- CompositeControl.cs
- WindowsTokenRoleProvider.cs
- Shape.cs
- WebPartActionVerb.cs
- Margins.cs
- DynamicValidatorEventArgs.cs
- MatchAllMessageFilter.cs
- XXXInfos.cs
- Splitter.cs
- XmlUrlResolver.cs
- TextCollapsingProperties.cs