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
- InternalUserCancelledException.cs
- XhtmlStyleClass.cs
- DataGridViewRowCancelEventArgs.cs
- BitVec.cs
- CorrelationService.cs
- ContextMenuStripActionList.cs
- EffectiveValueEntry.cs
- ClientTargetSection.cs
- DispatcherSynchronizationContext.cs
- List.cs
- OdbcCommand.cs
- ProtocolElementCollection.cs
- ProxyFragment.cs
- ObjectDataProvider.cs
- RayMeshGeometry3DHitTestResult.cs
- ServiceBusyException.cs
- XLinq.cs
- ControlCachePolicy.cs
- StylusDownEventArgs.cs
- TokenFactoryBase.cs
- ConfigurationErrorsException.cs
- WebServiceData.cs
- ListMarkerSourceInfo.cs
- DecoderReplacementFallback.cs
- ArgumentOutOfRangeException.cs
- UpdateDelegates.Generated.cs
- CodeDirectoryCompiler.cs
- SpellerHighlightLayer.cs
- NamedElement.cs
- CodeExporter.cs
- httpstaticobjectscollection.cs
- indexingfiltermarshaler.cs
- CapabilitiesPattern.cs
- RealProxy.cs
- ByteKeyFrameCollection.cs
- WmlLabelAdapter.cs
- BinaryMethodMessage.cs
- ElementHostAutomationPeer.cs
- NativeDirectoryServicesQueryAPIs.cs
- ExtendedPropertyDescriptor.cs
- SerTrace.cs
- NotFiniteNumberException.cs
- SharedConnectionInfo.cs
- PreDigestedSignedInfo.cs
- ServiceProviders.cs
- XamlToRtfParser.cs
- CompiledAction.cs
- ClientTargetCollection.cs
- HttpWebResponse.cs
- XsltLoader.cs
- CommandID.cs
- ActiveXHost.cs
- TextBoxAutomationPeer.cs
- DiscreteKeyFrames.cs
- HttpModuleActionCollection.cs
- CounterSampleCalculator.cs
- XmlCDATASection.cs
- SoapSchemaMember.cs
- GraphicsPath.cs
- DataGridTextBoxColumn.cs
- SecurityHelper.cs
- OutputCacheSection.cs
- ScriptingSectionGroup.cs
- Exceptions.cs
- TypeContext.cs
- TextEffectResolver.cs
- InkCanvasAutomationPeer.cs
- CollectionBuilder.cs
- KeyboardEventArgs.cs
- ListBindingConverter.cs
- PartManifestEntry.cs
- Trigger.cs
- TextBlock.cs
- MemberAccessException.cs
- GraphicsPath.cs
- WCFModelStrings.Designer.cs
- ExpressionPrinter.cs
- ChtmlTextWriter.cs
- SystemUnicastIPAddressInformation.cs
- FixedTextPointer.cs
- CompilerState.cs
- HtmlShim.cs
- xsdvalidator.cs
- OpCellTreeNode.cs
- ObjectDisposedException.cs
- StrongNamePublicKeyBlob.cs
- MarshalDirectiveException.cs
- PerfCounters.cs
- ProviderCollection.cs
- GrammarBuilderPhrase.cs
- KnownBoxes.cs
- ByteStreamGeometryContext.cs
- ClientEventManager.cs
- BitmapEffect.cs
- QueryParameter.cs
- AuthenticationSection.cs
- TextLineResult.cs
- StreamGeometry.cs
- ToolStripArrowRenderEventArgs.cs
- NavigateEvent.cs