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
- TypeInitializationException.cs
- UnknownWrapper.cs
- EmbossBitmapEffect.cs
- DragEventArgs.cs
- ArgumentException.cs
- OperationFormatUse.cs
- SignerInfo.cs
- ScrollViewerAutomationPeer.cs
- ForeignKeyFactory.cs
- PeerPresenceInfo.cs
- InteropBitmapSource.cs
- Transform3DCollection.cs
- StatusBarItem.cs
- AlternateViewCollection.cs
- EntityContainerEntitySet.cs
- DataTrigger.cs
- TemplateControlParser.cs
- ReturnType.cs
- AuthorizationRule.cs
- PropertySet.cs
- TypeUtils.cs
- _ConnectStream.cs
- XmlHierarchyData.cs
- ButtonColumn.cs
- OleDbCommand.cs
- PolicyStatement.cs
- BufferedGraphics.cs
- Int32Collection.cs
- TraceUtility.cs
- sortedlist.cs
- ContextProperty.cs
- Sql8ConformanceChecker.cs
- TileBrush.cs
- OpacityConverter.cs
- FileSecurity.cs
- StringReader.cs
- FieldDescriptor.cs
- KnownTypesHelper.cs
- DBConnectionString.cs
- ContentIterators.cs
- OperationParameterInfoCollection.cs
- DataViewSetting.cs
- SqlConnectionPoolProviderInfo.cs
- DataContext.cs
- DataDocumentXPathNavigator.cs
- HtmlTableRowCollection.cs
- HandlerMappingMemo.cs
- ListViewGroupConverter.cs
- InternalConfigHost.cs
- ApplicationSecurityManager.cs
- ProviderSettings.cs
- Evidence.cs
- WebRequest.cs
- ApplicationHost.cs
- DBCommand.cs
- DecimalAnimationBase.cs
- BigInt.cs
- DataServiceHost.cs
- LinqDataSourceUpdateEventArgs.cs
- SmtpAuthenticationManager.cs
- OrderPreservingMergeHelper.cs
- PolicyLevel.cs
- BuildManager.cs
- FieldAccessException.cs
- Documentation.cs
- ThousandthOfEmRealDoubles.cs
- CategoriesDocumentFormatter.cs
- CodeSnippetStatement.cs
- WebExceptionStatus.cs
- OdbcHandle.cs
- PageCodeDomTreeGenerator.cs
- CryptoApi.cs
- Comparer.cs
- TraceSection.cs
- BamlLocalizationDictionary.cs
- TextTreeRootNode.cs
- AssociatedControlConverter.cs
- RegionIterator.cs
- File.cs
- DebuggerAttributes.cs
- ReachBasicContext.cs
- ExtendedTransformFactory.cs
- DataGridToolTip.cs
- MachineKeyConverter.cs
- GridViewPageEventArgs.cs
- ErrorStyle.cs
- MsmqAppDomainProtocolHandler.cs
- Inline.cs
- SQLBytesStorage.cs
- PrinterUnitConvert.cs
- ByteAnimationBase.cs
- RequiredFieldValidator.cs
- Base64WriteStateInfo.cs
- AuthenticatedStream.cs
- StylusDevice.cs
- XmlNamespaceManager.cs
- Utils.cs
- ExtendedProtectionPolicyTypeConverter.cs
- HttpResponseMessageProperty.cs
- DefaultAssemblyResolver.cs