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
- ProcessModelSection.cs
- RoleManagerSection.cs
- InstalledFontCollection.cs
- UserControlAutomationPeer.cs
- UserControlBuildProvider.cs
- BinaryWriter.cs
- LicenseProviderAttribute.cs
- ProcessHostMapPath.cs
- CodeNamespace.cs
- precedingquery.cs
- ImageListStreamer.cs
- SqlBuilder.cs
- PrtTicket_Public.cs
- TextRangeEditLists.cs
- TemplateApplicationHelper.cs
- FontInfo.cs
- SmiEventSink_DeferedProcessing.cs
- SimpleWorkerRequest.cs
- TempFiles.cs
- DataTable.cs
- ServiceSecurityContext.cs
- ListenerHandler.cs
- SubMenuStyleCollection.cs
- InheritanceUI.cs
- BevelBitmapEffect.cs
- VirtualDirectoryMapping.cs
- RecordManager.cs
- ResourcesBuildProvider.cs
- SqlParameter.cs
- GridViewDeleteEventArgs.cs
- FocusChangedEventArgs.cs
- GeneralTransform3DCollection.cs
- DataKey.cs
- HtmlTable.cs
- MultiSelectRootGridEntry.cs
- ModelPropertyDescriptor.cs
- PixelFormat.cs
- webeventbuffer.cs
- OleDbCommand.cs
- TableItemStyle.cs
- UrlPath.cs
- ISCIIEncoding.cs
- TextRunCacheImp.cs
- Camera.cs
- DES.cs
- RefExpr.cs
- InkPresenterAutomationPeer.cs
- AssemblySettingAttributes.cs
- PropertyIDSet.cs
- AdobeCFFWrapper.cs
- DataViewListener.cs
- ActivityBuilderHelper.cs
- KeyBinding.cs
- XmlEnumAttribute.cs
- Aggregates.cs
- WindowsGraphicsCacheManager.cs
- Control.cs
- EdmToObjectNamespaceMap.cs
- EntityDataSourceChangedEventArgs.cs
- EditorPartChrome.cs
- ContextMenuAutomationPeer.cs
- LocatorManager.cs
- CharStorage.cs
- PageTheme.cs
- FolderBrowserDialogDesigner.cs
- MiniLockedBorderGlyph.cs
- ClientRoleProvider.cs
- ServiceProviders.cs
- PropertyToken.cs
- MetadataArtifactLoaderComposite.cs
- PasswordRecovery.cs
- WebDescriptionAttribute.cs
- CaretElement.cs
- ClientBuildManagerCallback.cs
- AggregateNode.cs
- RelatedView.cs
- XsdDuration.cs
- ScalarOps.cs
- RemotingConfigParser.cs
- EdmItemCollection.OcAssemblyCache.cs
- XPathSelectionIterator.cs
- MethodImplAttribute.cs
- WebPartsPersonalizationAuthorization.cs
- ContentValidator.cs
- Matrix3D.cs
- Speller.cs
- ServiceHostFactory.cs
- IntAverageAggregationOperator.cs
- RelationshipFixer.cs
- ItemMap.cs
- HwndStylusInputProvider.cs
- BuiltInExpr.cs
- EdmSchemaAttribute.cs
- SqlXml.cs
- ConfigurationSchemaErrors.cs
- ParsedAttributeCollection.cs
- ProfileBuildProvider.cs
- _Connection.cs
- UITypeEditor.cs
- DataGridViewRow.cs