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
- Point3DValueSerializer.cs
- WindowCollection.cs
- Documentation.cs
- SiteIdentityPermission.cs
- Oci.cs
- NavigatorOutput.cs
- SelectedGridItemChangedEvent.cs
- TextFormatterContext.cs
- ExpressionBuilderContext.cs
- CommonXSendMessage.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- RuntimeConfigLKG.cs
- DebugTracing.cs
- SchemaMapping.cs
- Dynamic.cs
- FrameAutomationPeer.cs
- DescendantBaseQuery.cs
- EntitySqlQueryBuilder.cs
- GridSplitter.cs
- InputReportEventArgs.cs
- PreservationFileReader.cs
- JpegBitmapEncoder.cs
- ProcessHost.cs
- FileStream.cs
- PersonalizationProviderHelper.cs
- DictionaryEntry.cs
- ApplicationHost.cs
- ScaleTransform.cs
- SHA512Managed.cs
- ThreadStartException.cs
- LoginUtil.cs
- ExtendedPropertyInfo.cs
- dataprotectionpermission.cs
- HashHelper.cs
- WebPartMinimizeVerb.cs
- StyleTypedPropertyAttribute.cs
- StyleCollection.cs
- EventHandlerList.cs
- ConvertEvent.cs
- ConfigsHelper.cs
- HatchBrush.cs
- EntityFrameworkVersions.cs
- UrlAuthFailedErrorFormatter.cs
- ChangesetResponse.cs
- HostedAspNetEnvironment.cs
- SpoolingTaskBase.cs
- ConnectionInterfaceCollection.cs
- BooleanStorage.cs
- BaseCollection.cs
- GPRECT.cs
- PeerNameRecordCollection.cs
- HttpCapabilitiesEvaluator.cs
- HighlightVisual.cs
- BezierSegment.cs
- BuildProviderCollection.cs
- PeerName.cs
- NamedElement.cs
- CodeDelegateInvokeExpression.cs
- DependsOnAttribute.cs
- ContractMethodInfo.cs
- EventLogPermissionEntryCollection.cs
- WebPartUtil.cs
- DetailsViewAutoFormat.cs
- DocumentsTrace.cs
- Mapping.cs
- CustomTypeDescriptor.cs
- Page.cs
- TextFormatterContext.cs
- NativeRightsManagementAPIsStructures.cs
- _NativeSSPI.cs
- StateWorkerRequest.cs
- WSHttpBindingBase.cs
- LoginName.cs
- KeyValuePairs.cs
- DBCommandBuilder.cs
- DBSqlParserTable.cs
- TextDecorations.cs
- PreviewPrintController.cs
- ChannelAcceptor.cs
- XsltLoader.cs
- WindowsToolbar.cs
- DesignerTextViewAdapter.cs
- SimpleRecyclingCache.cs
- WebReference.cs
- ComponentConverter.cs
- FederatedMessageSecurityOverHttp.cs
- TextSelectionHighlightLayer.cs
- ExtensionDataReader.cs
- SqlCharStream.cs
- KnowledgeBase.cs
- ExportFileRequest.cs
- SmiTypedGetterSetter.cs
- StringValueConverter.cs
- SettingsPropertyValueCollection.cs
- UIElementCollection.cs
- ControlFilterExpression.cs
- WindowHideOrCloseTracker.cs
- ObjectAnimationBase.cs
- HttpCachePolicyElement.cs
- LinkUtilities.cs