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
- ContextBase.cs
- ContravarianceAdapter.cs
- IsolatedStoragePermission.cs
- Terminate.cs
- BooleanStorage.cs
- APCustomTypeDescriptor.cs
- ByteStack.cs
- PrincipalPermission.cs
- TimeSpanValidatorAttribute.cs
- SqlNode.cs
- XPathNode.cs
- _HeaderInfo.cs
- UserControl.cs
- COAUTHIDENTITY.cs
- ClientFormsIdentity.cs
- NumberFunctions.cs
- BitmapScalingModeValidation.cs
- XmlValueConverter.cs
- ListManagerBindingsCollection.cs
- SelectionHighlightInfo.cs
- HttpListenerPrefixCollection.cs
- MultiTargetingUtil.cs
- RegexParser.cs
- RuntimeCompatibilityAttribute.cs
- FaultCallbackWrapper.cs
- BitmapEffectDrawingContent.cs
- ColorConvertedBitmap.cs
- TraceXPathNavigator.cs
- MouseActionConverter.cs
- UpWmlPageAdapter.cs
- EntityReference.cs
- MethodExpression.cs
- DispatchChannelSink.cs
- SecurityKeyType.cs
- GlobalItem.cs
- CellTreeNode.cs
- CreateUserWizardStep.cs
- BamlStream.cs
- Geometry3D.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TemplateComponentConnector.cs
- WebServiceAttribute.cs
- ParagraphVisual.cs
- WebPartZoneDesigner.cs
- EmptyImpersonationContext.cs
- HelpOperationInvoker.cs
- WebBrowserBase.cs
- MSHTMLHost.cs
- PlatformCulture.cs
- SortedDictionary.cs
- FormsAuthenticationUser.cs
- ListManagerBindingsCollection.cs
- CryptoApi.cs
- StaticResourceExtension.cs
- PersonalizableAttribute.cs
- SamlAuthorizationDecisionClaimResource.cs
- InternalConfigSettingsFactory.cs
- ResourcePool.cs
- LogSwitch.cs
- WindowsFormsHelpers.cs
- CodePrimitiveExpression.cs
- ValidationResult.cs
- EditorAttribute.cs
- MultiAsyncResult.cs
- FileLogRecord.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- PointAnimationBase.cs
- FormsAuthentication.cs
- BooleanFunctions.cs
- FilteredAttributeCollection.cs
- DefaultSerializationProviderAttribute.cs
- ReliableRequestSessionChannel.cs
- httpapplicationstate.cs
- SspiWrapper.cs
- ConnectionProviderAttribute.cs
- Cursors.cs
- DoubleAnimationUsingKeyFrames.cs
- RewritingPass.cs
- PngBitmapEncoder.cs
- DataSource.cs
- DirtyTextRange.cs
- DependencyPropertyConverter.cs
- CompilerGlobalScopeAttribute.cs
- handlecollector.cs
- OracleRowUpdatedEventArgs.cs
- BitmapCodecInfoInternal.cs
- SystemIPInterfaceProperties.cs
- XmlSchemaAttributeGroupRef.cs
- ValuePattern.cs
- Documentation.cs
- AsmxEndpointPickerExtension.cs
- MessageBox.cs
- SymmetricKeyWrap.cs
- DataGrid.cs
- webclient.cs
- StylusCaptureWithinProperty.cs
- InputProcessorProfiles.cs
- WpfKnownMember.cs
- SqlInternalConnectionTds.cs
- TdsParameterSetter.cs