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
- ObjectDesignerDataSourceView.cs
- MetadataFile.cs
- DataServiceConfiguration.cs
- ListenerElementsCollection.cs
- ActivityDesigner.cs
- XsltLoader.cs
- ObjectIDGenerator.cs
- InteropBitmapSource.cs
- TextEditorSelection.cs
- ComponentResourceManager.cs
- WindowsClaimSet.cs
- AppDomainProtocolHandler.cs
- RedBlackList.cs
- MenuBase.cs
- EncodingNLS.cs
- StateItem.cs
- MediaScriptCommandRoutedEventArgs.cs
- LayoutEvent.cs
- ListViewCommandEventArgs.cs
- AddInDeploymentState.cs
- ModuleBuilderData.cs
- ClientTarget.cs
- _AutoWebProxyScriptWrapper.cs
- ZipPackage.cs
- HttpRequestWrapper.cs
- DocumentViewer.cs
- SpeechUI.cs
- x509utils.cs
- UnsafeNativeMethods.cs
- UniqueEventHelper.cs
- Vector3DCollection.cs
- SmiMetaData.cs
- TextDecoration.cs
- CodeCastExpression.cs
- DataSourceSelectArguments.cs
- HostedHttpTransportManager.cs
- InstanceData.cs
- CompilerGlobalScopeAttribute.cs
- SafeSecurityHelper.cs
- DrawingAttributes.cs
- SaveFileDialog.cs
- XmlSchemaImport.cs
- QueryStatement.cs
- OleDbParameterCollection.cs
- DataGridViewRowCancelEventArgs.cs
- TaiwanCalendar.cs
- DesignerActionMethodItem.cs
- TogglePatternIdentifiers.cs
- XmlSchemaElement.cs
- EditorBrowsableAttribute.cs
- DateTimeFormat.cs
- SafeProcessHandle.cs
- TypeUtil.cs
- BevelBitmapEffect.cs
- ExpressionBuilderContext.cs
- TaskDesigner.cs
- HitTestWithPointDrawingContextWalker.cs
- AuthenticateEventArgs.cs
- FixedStringLookup.cs
- BinaryWriter.cs
- ListGeneralPage.cs
- CharKeyFrameCollection.cs
- DateTimeConstantAttribute.cs
- UpdateManifestForBrowserApplication.cs
- sqlser.cs
- QilStrConcatenator.cs
- DbProviderFactories.cs
- DocumentXPathNavigator.cs
- BitmapMetadata.cs
- WebCategoryAttribute.cs
- NumberSubstitution.cs
- DesignerTransactionCloseEvent.cs
- SymDocumentType.cs
- SettingsPropertyCollection.cs
- WebPartsPersonalizationAuthorization.cs
- NullableDecimalSumAggregationOperator.cs
- KeyValueSerializer.cs
- securitycriticaldataClass.cs
- RelationshipType.cs
- SqlInternalConnectionTds.cs
- RowUpdatedEventArgs.cs
- UnitySerializationHolder.cs
- PointLight.cs
- MatrixKeyFrameCollection.cs
- Slider.cs
- BypassElement.cs
- DataBindingCollectionConverter.cs
- FastPropertyAccessor.cs
- SqlDependencyListener.cs
- CryptographicAttribute.cs
- dataobject.cs
- Compress.cs
- MachineKeySection.cs
- Opcode.cs
- ImageListImageEditor.cs
- Scheduling.cs
- FormsAuthentication.cs
- counter.cs
- XPathBinder.cs
- RenderTargetBitmap.cs