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
- FilterQuery.cs
- TextSimpleMarkerProperties.cs
- PeerUnsafeNativeMethods.cs
- PerformanceCounter.cs
- HttpException.cs
- GenerateTemporaryAssemblyTask.cs
- TransactionState.cs
- ListViewDataItem.cs
- DescendantOverDescendantQuery.cs
- PrintingPermission.cs
- AssemblyCache.cs
- EventSource.cs
- DetailsViewUpdateEventArgs.cs
- SpAudioStreamWrapper.cs
- TrackingServices.cs
- MissingMemberException.cs
- BulletedList.cs
- EditorPartCollection.cs
- ProcessRequestArgs.cs
- ComponentEditorForm.cs
- Underline.cs
- _LazyAsyncResult.cs
- TextSelectionHelper.cs
- Assembly.cs
- AnnotationResourceCollection.cs
- FastPropertyAccessor.cs
- FontSource.cs
- Win32.cs
- ResXResourceSet.cs
- FlowLayoutPanel.cs
- InkCanvasAutomationPeer.cs
- TextEffectCollection.cs
- HttpHandlerActionCollection.cs
- EpmAttributeNameBuilder.cs
- ListContractAdapter.cs
- ClaimTypeRequirement.cs
- ActivityExecutionContext.cs
- SupportsEventValidationAttribute.cs
- SelectingProviderEventArgs.cs
- DataFieldConverter.cs
- XmlObjectSerializerReadContextComplexJson.cs
- ObjectAssociationEndMapping.cs
- XpsFixedDocumentReaderWriter.cs
- ConfigurationLockCollection.cs
- DBParameter.cs
- ModulesEntry.cs
- SwitchDesigner.xaml.cs
- Descriptor.cs
- DoubleUtil.cs
- Polyline.cs
- ExtendedTransformFactory.cs
- DataGridViewButtonColumn.cs
- SizeLimitedCache.cs
- ServiceSecurityAuditBehavior.cs
- DocumentApplicationJournalEntry.cs
- DecoderFallback.cs
- MessageQueue.cs
- DiagnosticsConfiguration.cs
- OutgoingWebRequestContext.cs
- HttpServerVarsCollection.cs
- CannotUnloadAppDomainException.cs
- ActionFrame.cs
- FacetChecker.cs
- IgnoreDataMemberAttribute.cs
- HtmlInputCheckBox.cs
- TemplateAction.cs
- PropertyGrid.cs
- ScriptManagerProxy.cs
- RefExpr.cs
- DataControlPagerLinkButton.cs
- WsdlBuildProvider.cs
- TextEditor.cs
- WebServiceEnumData.cs
- ResourceExpression.cs
- NullableLongMinMaxAggregationOperator.cs
- XmlChoiceIdentifierAttribute.cs
- XmlMessageFormatter.cs
- ChtmlPhoneCallAdapter.cs
- BlockCollection.cs
- DataColumn.cs
- KeyInfo.cs
- LineBreak.cs
- TextBlockAutomationPeer.cs
- FunctionDetailsReader.cs
- NonClientArea.cs
- NameValueSectionHandler.cs
- XmlSchemaSimpleTypeList.cs
- DrawItemEvent.cs
- ConditionCollection.cs
- PtsPage.cs
- FileDialog.cs
- Screen.cs
- BaseDataListActionList.cs
- DrawingAttributes.cs
- MessagePartProtectionMode.cs
- ValidationResult.cs
- TemplatedMailWebEventProvider.cs
- DeferredTextReference.cs
- UrlAuthorizationModule.cs
- SerializationHelper.cs