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
- WinFormsSecurity.cs
- GradientStop.cs
- ProgramNode.cs
- MasterPage.cs
- ProxyDataContractResolver.cs
- XmlHierarchicalEnumerable.cs
- MethodBuilderInstantiation.cs
- ConfigurationErrorsException.cs
- EncryptedKeyHashIdentifierClause.cs
- ConsoleCancelEventArgs.cs
- SqlDataRecord.cs
- FileEnumerator.cs
- PrePrepareMethodAttribute.cs
- ConnectionProviderAttribute.cs
- WebColorConverter.cs
- MultiBinding.cs
- Function.cs
- DrawingAttributes.cs
- Point3DKeyFrameCollection.cs
- SqlClientMetaDataCollectionNames.cs
- FederatedMessageSecurityOverHttpElement.cs
- FileIOPermission.cs
- PartitionResolver.cs
- SynchronizationContext.cs
- ListItem.cs
- XPathItem.cs
- GlobalAllocSafeHandle.cs
- MustUnderstandBehavior.cs
- ScheduleChanges.cs
- ServiceElementCollection.cs
- IResourceProvider.cs
- ChangeInterceptorAttribute.cs
- sqlmetadatafactory.cs
- DetailsView.cs
- SecurityKeyIdentifierClause.cs
- RequestResizeEvent.cs
- WorkBatch.cs
- ConnectionManagementSection.cs
- DataGridViewCellFormattingEventArgs.cs
- HttpCachePolicyBase.cs
- x509store.cs
- UpdateTracker.cs
- NumericPagerField.cs
- LogManagementAsyncResult.cs
- HttpProcessUtility.cs
- HtmlElement.cs
- Expander.cs
- Stroke2.cs
- iisPickupDirectory.cs
- ScaleTransform.cs
- NullableIntSumAggregationOperator.cs
- UIPermission.cs
- ElementsClipboardData.cs
- TextTabProperties.cs
- TextShapeableCharacters.cs
- TableItemStyle.cs
- SliderAutomationPeer.cs
- WpfWebRequestHelper.cs
- BaseTreeIterator.cs
- DragEventArgs.cs
- ToolStrip.cs
- UndoManager.cs
- InstanceContextMode.cs
- SecondaryIndex.cs
- DesigntimeLicenseContextSerializer.cs
- COM2PropertyDescriptor.cs
- RsaKeyIdentifierClause.cs
- DashStyles.cs
- ElementUtil.cs
- HttpConfigurationContext.cs
- ProgressChangedEventArgs.cs
- ManagementObject.cs
- WaveHeader.cs
- RuntimeConfigLKG.cs
- ClientTargetSection.cs
- MessageBox.cs
- X509Certificate.cs
- CodeObject.cs
- Matrix3DValueSerializer.cs
- StateWorkerRequest.cs
- UpdatePanelTrigger.cs
- WebServiceMethodData.cs
- ValidatingReaderNodeData.cs
- BinaryWriter.cs
- CriticalFinalizerObject.cs
- RegexTypeEditor.cs
- WebConfigurationFileMap.cs
- ListViewItem.cs
- NestedContainer.cs
- WindowsTreeView.cs
- SqlVisitor.cs
- GraphicsPathIterator.cs
- TextEditor.cs
- DefaultPropertyAttribute.cs
- KeyEvent.cs
- MailAddressCollection.cs
- WebEventCodes.cs
- ArraySet.cs
- RefExpr.cs
- XmlChoiceIdentifierAttribute.cs