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
- X509ChainElement.cs
- ControlAdapter.cs
- DataGridTableCollection.cs
- RegexCompilationInfo.cs
- RelationshipType.cs
- ManagedWndProcTracker.cs
- TextFormatterHost.cs
- ManagementObjectSearcher.cs
- Queue.cs
- DbConnectionPoolGroupProviderInfo.cs
- LongTypeConverter.cs
- WindowsGrip.cs
- FlowDocumentScrollViewer.cs
- SecurityException.cs
- AutomationProperty.cs
- XmlSchemaCompilationSettings.cs
- SecurityUtils.cs
- DataServiceException.cs
- Object.cs
- MaskDesignerDialog.cs
- StyleTypedPropertyAttribute.cs
- CompilationUnit.cs
- CodeArrayCreateExpression.cs
- ProfileProvider.cs
- DesignerActionPropertyItem.cs
- Storyboard.cs
- ResourcePool.cs
- PolicyChain.cs
- Automation.cs
- GacUtil.cs
- SqlTypeSystemProvider.cs
- WebPartMenu.cs
- GenericTextProperties.cs
- DataServiceRequestException.cs
- DBBindings.cs
- ComponentDispatcher.cs
- DataTableReaderListener.cs
- DbConnectionOptions.cs
- SelectionManager.cs
- _SecureChannel.cs
- RightsManagementPermission.cs
- PartialArray.cs
- DisplayInformation.cs
- ZoomComboBox.cs
- FileSystemInfo.cs
- ProtectedProviderSettings.cs
- CodeFieldReferenceExpression.cs
- GenericAuthenticationEventArgs.cs
- ElementMarkupObject.cs
- XsltArgumentList.cs
- DynamicQueryableWrapper.cs
- ConfigXmlSignificantWhitespace.cs
- DashStyles.cs
- Baml2006ReaderSettings.cs
- HyperLinkColumn.cs
- CultureInfoConverter.cs
- WindowsBrush.cs
- XmlQueryStaticData.cs
- KnownBoxes.cs
- DataStreamFromComStream.cs
- Subtree.cs
- LongAverageAggregationOperator.cs
- ComponentResourceKeyConverter.cs
- XmlSchemas.cs
- NumericExpr.cs
- WindowsImpersonationContext.cs
- Compiler.cs
- OrderByQueryOptionExpression.cs
- BitmapFrame.cs
- SymbolMethod.cs
- TdsRecordBufferSetter.cs
- GridViewColumnHeader.cs
- ISCIIEncoding.cs
- Int32RectConverter.cs
- SmiXetterAccessMap.cs
- InternalConfigEventArgs.cs
- WebPartConnectionsEventArgs.cs
- SetterBaseCollection.cs
- DocumentXPathNavigator.cs
- CacheDependency.cs
- ConfigXmlWhitespace.cs
- XmlNode.cs
- Line.cs
- SizeValueSerializer.cs
- RoutedEventConverter.cs
- SerialStream.cs
- MultilineStringConverter.cs
- Membership.cs
- Converter.cs
- SharedPersonalizationStateInfo.cs
- MenuItem.cs
- ResourceAssociationTypeEnd.cs
- Bits.cs
- PrintDialog.cs
- QilDataSource.cs
- ServicesUtilities.cs
- PropertyRecord.cs
- PrtCap_Builder.cs
- SerializationInfo.cs
- PartitionedStream.cs