Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- ParallelRangeManager.cs
- DataBindingList.cs
- PointAnimation.cs
- Restrictions.cs
- OdbcHandle.cs
- SlotInfo.cs
- XsdBuildProvider.cs
- log.cs
- AutomationProperty.cs
- DataGridColumn.cs
- __ConsoleStream.cs
- Schema.cs
- WebBrowserNavigatedEventHandler.cs
- AttachmentService.cs
- DataViewManagerListItemTypeDescriptor.cs
- CssStyleCollection.cs
- CodeMemberMethod.cs
- ConfigurationHandlersInstallComponent.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ApplyHostConfigurationBehavior.cs
- DbConnectionFactory.cs
- StickyNoteAnnotations.cs
- FileLogRecord.cs
- EventManager.cs
- BitmapEffectvisualstate.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- AjaxFrameworkAssemblyAttribute.cs
- XmlSchemaSimpleTypeList.cs
- SeverityFilter.cs
- ParseHttpDate.cs
- FrameworkElement.cs
- DateTimeUtil.cs
- ListViewSelectEventArgs.cs
- ToolStripPanelRow.cs
- ConfigurationProviderException.cs
- Tokenizer.cs
- PageSettings.cs
- EdmType.cs
- AlphabeticalEnumConverter.cs
- SqlDataSourceEnumerator.cs
- Assert.cs
- MetadataCacheItem.cs
- ContentElementCollection.cs
- SynchronousSendBindingElement.cs
- CompositeControl.cs
- ManagementInstaller.cs
- TransactionFormatter.cs
- ProfileGroupSettings.cs
- WorkflowRuntimeServiceElement.cs
- WorkflowInstanceRecord.cs
- SharedRuntimeState.cs
- BinaryConverter.cs
- ButtonFlatAdapter.cs
- KeysConverter.cs
- PersonalizationStateInfo.cs
- StringExpressionSet.cs
- OpCellTreeNode.cs
- TagPrefixAttribute.cs
- TargetException.cs
- NextPreviousPagerField.cs
- BuildManagerHost.cs
- SurrogateEncoder.cs
- SynchronizingStream.cs
- CompressStream.cs
- WebPartZone.cs
- PlatformNotSupportedException.cs
- ConfigXmlCDataSection.cs
- WebScriptEnablingElement.cs
- ToolStripContentPanelRenderEventArgs.cs
- SelectingProviderEventArgs.cs
- QueryTask.cs
- PortCache.cs
- ListMarkerLine.cs
- ObjectDisposedException.cs
- FormsAuthenticationEventArgs.cs
- TextContainerHelper.cs
- DiscoveryReference.cs
- _LoggingObject.cs
- HtmlInputReset.cs
- ButtonPopupAdapter.cs
- PermissionSet.cs
- ExecutionContext.cs
- ForAllOperator.cs
- CssClassPropertyAttribute.cs
- OptimizerPatterns.cs
- CapabilitiesAssignment.cs
- TemplateBuilder.cs
- BitHelper.cs
- XmlEntity.cs
- SqlParameterCollection.cs
- InternalConfigHost.cs
- FolderBrowserDialog.cs
- HttpFormatExtensions.cs
- XmlText.cs
- RoutedCommand.cs
- WebContentFormatHelper.cs
- ImageCollectionEditor.cs
- WebPartEditVerb.cs
- EnumerationRangeValidationUtil.cs
- SecureStringHasher.cs