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
- PropertyDescriptor.cs
- XmlSchemaDocumentation.cs
- ConfigurationElement.cs
- WebPartDesigner.cs
- ResponseStream.cs
- IItemContainerGenerator.cs
- JsonSerializer.cs
- ReflectPropertyDescriptor.cs
- CookieHandler.cs
- Switch.cs
- XamlDebuggerXmlReader.cs
- EdmType.cs
- SapiInterop.cs
- Viewport2DVisual3D.cs
- Validator.cs
- WmiPutTraceRecord.cs
- TemplatePagerField.cs
- PasswordTextContainer.cs
- WindowsAltTab.cs
- RowUpdatedEventArgs.cs
- Assembly.cs
- WindowsGraphics.cs
- EventSinkActivity.cs
- SplitterEvent.cs
- LinqDataSource.cs
- Application.cs
- ClientTargetSection.cs
- X509Extension.cs
- PnrpPeerResolver.cs
- StringConverter.cs
- FileDialogCustomPlacesCollection.cs
- SafeReadContext.cs
- SqlGenericUtil.cs
- DataService.cs
- CodeTypeConstructor.cs
- X509CertificateValidator.cs
- RemotingService.cs
- TextElementEnumerator.cs
- KnownIds.cs
- AccessibilityApplicationManager.cs
- WindowsRebar.cs
- TypeHelpers.cs
- ToolStripGrip.cs
- NewExpression.cs
- OpenTypeMethods.cs
- BridgeDataRecord.cs
- ExpressionVisitor.cs
- MLangCodePageEncoding.cs
- EventListener.cs
- ProcessStartInfo.cs
- PackageProperties.cs
- ModuleBuilder.cs
- __Error.cs
- TaskHelper.cs
- TabletDeviceInfo.cs
- FormsAuthentication.cs
- ScrollItemPattern.cs
- PagerSettings.cs
- ScriptIgnoreAttribute.cs
- FileRecordSequenceCompletedAsyncResult.cs
- Stopwatch.cs
- DiscoveryViaBehavior.cs
- OperationCanceledException.cs
- HMACRIPEMD160.cs
- NodeLabelEditEvent.cs
- ReflectionHelper.cs
- XmlSchemaException.cs
- HttpCapabilitiesBase.cs
- ListViewItemEventArgs.cs
- XomlCompilerParameters.cs
- DataRowCollection.cs
- CommandTreeTypeHelper.cs
- ADMembershipProvider.cs
- MessageBox.cs
- XmlSchemaSimpleType.cs
- XmlNodeReader.cs
- DelayedRegex.cs
- ControlBindingsConverter.cs
- PagePropertiesChangingEventArgs.cs
- CqlWriter.cs
- KnownTypeDataContractResolver.cs
- GregorianCalendar.cs
- COM2ExtendedUITypeEditor.cs
- ClientUtils.cs
- Geometry3D.cs
- EventArgs.cs
- IPEndPoint.cs
- ScrollEvent.cs
- CopyOfAction.cs
- DesignerActionUIService.cs
- AmbientLight.cs
- ProcessHostServerConfig.cs
- AutoGeneratedFieldProperties.cs
- DeclarativeCatalogPart.cs
- RootContext.cs
- TimeSpan.cs
- PrinterSettings.cs
- HtmlContainerControl.cs
- CookielessData.cs
- SettingsProviderCollection.cs