Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / SelectedCellsCollection.cs / 1305600 / SelectedCellsCollection.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; namespace System.Windows.Controls { ////// A collection that optimizes the storage of DataGridCellInfo. /// ////// The collection is exposed through the DataGrid.SelectedCells property as /// a generic IList. /// /// The collection maintains a list of DataGridCellInfo so that users of the /// SelectedCells property can interact with it like a normal list. /// /// The collection maintains a dictionary mapping rows to columns and /// a dictionary that maps columns to rows. This allows quick retrieval /// of all selected cells in a particular row or column. These are /// operations that occur when select/deselecting a row or column. /// /// The collection implements all the parts of INotifyCollectionChanged so /// that the DataGrid can be notified of changes, but does not expose the /// interface so that SelectedCells can't be cast to it. This was to /// reduce the test coverage and the undiscoverability of the interface. /// internal sealed class SelectedCellsCollection : VirtualizedCellInfoCollection { #region Construction internal SelectedCellsCollection(DataGrid owner) : base(owner) { } #endregion #region DataGrid API ////// Calculates the bounding box of the cells. /// ///true if not empty, false if empty. internal bool GetSelectionRange(out int minColumnDisplayIndex, out int maxColumnDisplayIndex, out int minRowIndex, out int maxRowIndex) { if (IsEmpty) { minColumnDisplayIndex = -1; maxColumnDisplayIndex = -1; minRowIndex = -1; maxRowIndex = -1; return false; } else { GetBoundingRegion(out minColumnDisplayIndex, out minRowIndex, out maxColumnDisplayIndex, out maxRowIndex); return true; } } #endregion #region Collection Changed Notification ////// Notify the owning DataGrid of changes to this collection. /// protected override void OnCollectionChanged(NotifyCollectionChangedAction action, VirtualizedCellInfoCollection oldItems, VirtualizedCellInfoCollection newItems) { Owner.OnSelectedCellsChanged(action, oldItems, newItems); } #endregion } } // 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
- SqlNamer.cs
- ObjectStateFormatter.cs
- Certificate.cs
- AppDomainUnloadedException.cs
- SchemaConstraints.cs
- HandlerBase.cs
- TextBoxAutomationPeer.cs
- AuthenticationModulesSection.cs
- DataBoundLiteralControl.cs
- PartialCachingControl.cs
- Model3DGroup.cs
- Span.cs
- HttpCapabilitiesSectionHandler.cs
- AjaxFrameworkAssemblyAttribute.cs
- CallbackValidatorAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- ClientBuildManager.cs
- Style.cs
- Simplifier.cs
- LocalizableResourceBuilder.cs
- PropertyGridView.cs
- TemplateBuilder.cs
- TraceShell.cs
- ToolStripDropTargetManager.cs
- Guid.cs
- documentsequencetextcontainer.cs
- TextBreakpoint.cs
- BehaviorEditorPart.cs
- ApplicationManager.cs
- TextPointerBase.cs
- UniqueConstraint.cs
- SqlFileStream.cs
- AsnEncodedData.cs
- MailWebEventProvider.cs
- SplitContainer.cs
- Set.cs
- Vector3DConverter.cs
- ObjectToIdCache.cs
- OletxCommittableTransaction.cs
- XmlReaderSettings.cs
- DeleteIndexBinder.cs
- RuleProcessor.cs
- EntityDataSource.cs
- PropertyDescriptor.cs
- HierarchicalDataSourceControl.cs
- Crc32.cs
- EntityDesignerDataSourceView.cs
- InputLanguageManager.cs
- WindowsListViewGroupHelper.cs
- SchemaImporterExtensionElement.cs
- PreviewKeyDownEventArgs.cs
- PreservationFileReader.cs
- DeferrableContent.cs
- BamlResourceSerializer.cs
- DesignerAutoFormatStyle.cs
- StickyNoteContentControl.cs
- ChildTable.cs
- DateTimeAutomationPeer.cs
- Msec.cs
- TextInfo.cs
- IsolatedStorageFilePermission.cs
- PropertyTab.cs
- SortExpressionBuilder.cs
- InvalidEnumArgumentException.cs
- NamespaceEmitter.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ClockController.cs
- XamlStyleSerializer.cs
- DataGridViewCellParsingEventArgs.cs
- HostingEnvironmentSection.cs
- RelationshipSet.cs
- XmlUtil.cs
- StylusCollection.cs
- UserInitiatedNavigationPermission.cs
- SqlBulkCopy.cs
- EntityProviderFactory.cs
- PeerApplicationLaunchInfo.cs
- ToolStripItemDataObject.cs
- GuidelineCollection.cs
- DataSourceHelper.cs
- TemplatePagerField.cs
- MiniCustomAttributeInfo.cs
- DesignerToolboxInfo.cs
- EventBuilder.cs
- Reference.cs
- SerializationInfo.cs
- RSAPKCS1SignatureDeformatter.cs
- dsa.cs
- TextDpi.cs
- TableParagraph.cs
- WebException.cs
- HandlerFactoryCache.cs
- WindowsTreeView.cs
- XmlCustomFormatter.cs
- X509Certificate2.cs
- DockPatternIdentifiers.cs
- WebPartConnectionsCancelVerb.cs
- Identity.cs
- MessageQueueInstaller.cs
- Model3D.cs