Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / VirtualizingPanel.cs / 1305600 / 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() { } ////// The generator associated with this panel. /// public IItemContainerGenerator ItemContainerGenerator { get { return Generator; } } internal override void GenerateChildren() { // Do nothing. Subclasses will use the exposed generator to generate children. } ////// 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
- x509store.cs
- IntPtr.cs
- Button.cs
- RequestedSignatureDialog.cs
- EmbeddedObject.cs
- DateTimePicker.cs
- CacheEntry.cs
- SizeF.cs
- FieldNameLookup.cs
- RectangleHotSpot.cs
- ImageSourceValueSerializer.cs
- PromptStyle.cs
- ContentElement.cs
- ConstraintEnumerator.cs
- _SSPIWrapper.cs
- SiteMembershipCondition.cs
- MemberDescriptor.cs
- CheckBoxPopupAdapter.cs
- HtmlFormAdapter.cs
- DataConnectionHelper.cs
- CodeTypeDeclarationCollection.cs
- Documentation.cs
- PointHitTestParameters.cs
- Normalization.cs
- ImageSource.cs
- MiniConstructorInfo.cs
- EmptyElement.cs
- AuthenticationService.cs
- ProtectedConfiguration.cs
- DBPropSet.cs
- DataGridViewRowStateChangedEventArgs.cs
- WorkflowElementDialog.cs
- ControlSerializer.cs
- ScriptReferenceBase.cs
- DesignerVerbCollection.cs
- PauseStoryboard.cs
- HttpRequestBase.cs
- FileDetails.cs
- SvcMapFile.cs
- ViewCellRelation.cs
- ContentType.cs
- HostSecurityManager.cs
- DataGridColumn.cs
- FormsAuthenticationUserCollection.cs
- Pool.cs
- TextRunCacheImp.cs
- GeneralTransform.cs
- TypeInformation.cs
- QilFunction.cs
- Misc.cs
- CheckBoxField.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- LayoutExceptionEventArgs.cs
- Operator.cs
- TouchesCapturedWithinProperty.cs
- DialogResultConverter.cs
- ListViewTableCell.cs
- SystemEvents.cs
- ResXBuildProvider.cs
- _AcceptOverlappedAsyncResult.cs
- PropertyInfo.cs
- HighContrastHelper.cs
- AnnotationResourceCollection.cs
- ThreadPool.cs
- DrawingContextWalker.cs
- Select.cs
- ZoneLinkButton.cs
- ProxyWebPartConnectionCollection.cs
- MetadataPropertyCollection.cs
- filewebresponse.cs
- TextRange.cs
- MessageDispatch.cs
- HttpStaticObjectsCollectionWrapper.cs
- ColorTransformHelper.cs
- DeflateEmulationStream.cs
- StoreItemCollection.Loader.cs
- XPathAncestorQuery.cs
- RuntimeTrackingProfile.cs
- PKCS1MaskGenerationMethod.cs
- MergeLocalizationDirectives.cs
- MimeMultiPart.cs
- XmlHierarchyData.cs
- DataSource.cs
- ComboBox.cs
- StringUtil.cs
- DrawingImage.cs
- BitmapEffectGroup.cs
- AncillaryOps.cs
- BitmapEffectDrawingContextWalker.cs
- ProcessDesigner.cs
- DataTableTypeConverter.cs
- Normalization.cs
- ConversionHelper.cs
- ContentElement.cs
- OleDbCommand.cs
- ProviderConnectionPointCollection.cs
- RouteValueDictionary.cs
- TextFindEngine.cs
- StringCollectionEditor.cs
- HostingEnvironmentWrapper.cs