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
- FileRecordSequence.cs
- HostingEnvironmentException.cs
- UpdateCommand.cs
- EntityDataSource.cs
- StateItem.cs
- RectAnimationBase.cs
- XsdValidatingReader.cs
- Color.cs
- ErrorRuntimeConfig.cs
- LockCookie.cs
- WhitespaceReader.cs
- SourceFileInfo.cs
- FrameworkRichTextComposition.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- AppDomain.cs
- DataGridViewRowPostPaintEventArgs.cs
- DataTemplate.cs
- basemetadatamappingvisitor.cs
- FontStyleConverter.cs
- MultiBindingExpression.cs
- TouchDevice.cs
- SharedPersonalizationStateInfo.cs
- StringReader.cs
- StateMachine.cs
- ModulesEntry.cs
- PropertyBuilder.cs
- FrameSecurityDescriptor.cs
- oledbmetadatacolumnnames.cs
- FloaterBaseParaClient.cs
- ButtonDesigner.cs
- XmlSchemaSimpleContentRestriction.cs
- BulletedList.cs
- InputScopeNameConverter.cs
- oledbmetadatacolumnnames.cs
- XmlMembersMapping.cs
- ArraySortHelper.cs
- IndexedSelectQueryOperator.cs
- Keywords.cs
- ServiceMemoryGates.cs
- FileDataSourceCache.cs
- HttpCapabilitiesEvaluator.cs
- TransportContext.cs
- HasCopySemanticsAttribute.cs
- WebPartEditVerb.cs
- ApplicationInterop.cs
- ClientBuildManagerCallback.cs
- XPathNavigator.cs
- ZipIOLocalFileBlock.cs
- XamlTreeBuilderBamlRecordWriter.cs
- HandlerFactoryCache.cs
- OrderByLifter.cs
- MLangCodePageEncoding.cs
- Ops.cs
- MemberPathMap.cs
- _IPv6Address.cs
- ManipulationCompletedEventArgs.cs
- KnownTypeAttribute.cs
- GeneralTransformGroup.cs
- ImageMapEventArgs.cs
- XmlParser.cs
- ProfileParameter.cs
- ToolStripKeyboardHandlingService.cs
- HttpRequest.cs
- SeekStoryboard.cs
- TableLayoutPanelResizeGlyph.cs
- SoapUnknownHeader.cs
- AssemblyHash.cs
- ECDiffieHellmanPublicKey.cs
- RolePrincipal.cs
- SoapWriter.cs
- PnrpPermission.cs
- ProxyAttribute.cs
- TransactionScope.cs
- TraceXPathNavigator.cs
- WorkflowServiceOperationListItem.cs
- KeyToListMap.cs
- RootBrowserWindowProxy.cs
- AttributeEmitter.cs
- ToolStripSeparator.cs
- AuthenticationModuleElementCollection.cs
- LongValidatorAttribute.cs
- Mapping.cs
- RepeaterItemCollection.cs
- AvTraceDetails.cs
- XPathPatternBuilder.cs
- NonNullItemCollection.cs
- IntranetCredentialPolicy.cs
- SmtpNtlmAuthenticationModule.cs
- ErrorFormatter.cs
- TypeDefinition.cs
- ListenerChannelContext.cs
- PrintPreviewControl.cs
- FileDetails.cs
- ServicePointManagerElement.cs
- FrameSecurityDescriptor.cs
- UnknownWrapper.cs
- DataGridViewSelectedRowCollection.cs
- ReaderContextStackData.cs
- DataBinder.cs
- RuleSettings.cs