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
- PeerNameRegistration.cs
- MemoryRecordBuffer.cs
- Queue.cs
- LabelLiteral.cs
- TagPrefixCollection.cs
- StructuredTypeInfo.cs
- CompositeDataBoundControl.cs
- EntityDataSourceView.cs
- JsonSerializer.cs
- ProfilePropertyNameValidator.cs
- OuterProxyWrapper.cs
- WebScriptServiceHostFactory.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ToolBarButtonClickEvent.cs
- XmlWriterSettings.cs
- MetaModel.cs
- HandlerMappingMemo.cs
- ParameterBinding.cs
- ToolStripLabel.cs
- RoleManagerEventArgs.cs
- RewritingProcessor.cs
- MdiWindowListItemConverter.cs
- TextSelectionProcessor.cs
- CodeRegionDirective.cs
- TableParaClient.cs
- ProfileSettingsCollection.cs
- StylusPointPropertyId.cs
- NameValueFileSectionHandler.cs
- TrustManagerMoreInformation.cs
- BitmapMetadataEnumerator.cs
- MatrixTransform3D.cs
- WsdlBuildProvider.cs
- XmlNodeReader.cs
- GetReadStreamResult.cs
- CalendarData.cs
- XmlDownloadManager.cs
- WaitForChangedResult.cs
- ContentElementCollection.cs
- XmlSubtreeReader.cs
- StyleXamlParser.cs
- QueryOpeningEnumerator.cs
- UndoManager.cs
- EncryptedXml.cs
- ClientConfigurationHost.cs
- SamlAuthorizationDecisionStatement.cs
- ListSortDescription.cs
- handlecollector.cs
- PageParserFilter.cs
- BinHexDecoder.cs
- Comparer.cs
- WriteFileContext.cs
- NewArrayExpression.cs
- HtmlFormWrapper.cs
- PersonalizationStateInfoCollection.cs
- RSACryptoServiceProvider.cs
- IPAddress.cs
- SafeArchiveContext.cs
- IdentitySection.cs
- LingerOption.cs
- LoginDesignerUtil.cs
- SrgsElementList.cs
- RemotingAttributes.cs
- Model3D.cs
- ManipulationDelta.cs
- Container.cs
- SafeThreadHandle.cs
- TextTreeNode.cs
- BamlTreeUpdater.cs
- AssemblyCollection.cs
- EditorAttribute.cs
- StateChangeEvent.cs
- SystemIcmpV6Statistics.cs
- ExpressionLink.cs
- QilScopedVisitor.cs
- PointAnimationClockResource.cs
- _BufferOffsetSize.cs
- EarlyBoundInfo.cs
- ActivityExecutionContextCollection.cs
- EmissiveMaterial.cs
- WebPartVerbsEventArgs.cs
- HttpCacheParams.cs
- WSHttpSecurityElement.cs
- DataGridItem.cs
- UserMapPath.cs
- WebConfigurationManager.cs
- SwitchElementsCollection.cs
- PeerPresenceInfo.cs
- ConfigXmlAttribute.cs
- RequestValidator.cs
- PropertyFilterAttribute.cs
- ModelPerspective.cs
- SoapIncludeAttribute.cs
- OverflowException.cs
- Transform.cs
- AllMembershipCondition.cs
- __Filters.cs
- WindowsSecurityToken.cs
- _SslStream.cs
- KerberosSecurityTokenProvider.cs
- EntryIndex.cs