Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Data / CollectionViewGroupRoot.cs / 1 / CollectionViewGroupRoot.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: Root of CollectionViewGroup structure, as created by a CollectionView according to a GroupDescription. // CollectionView classes use this class to manage all Grouping functionality. // // See spec at [....]/connecteddata/Specs/Grouping.mht // //--------------------------------------------------------------------------- using System; using System.Collections; // IComparer using System.Collections.ObjectModel; // ObservableCollection using System.Collections.Specialized; // INotifyCollectionChanged using System.ComponentModel; // PropertyChangedEventArgs, GroupDescription using System.Globalization; using System.Windows.Data; // CollectionViewGroup namespace MS.Internal.Data { // CollectionView classes use this class as the manager of all Grouping functionality internal class CollectionViewGroupRoot : CollectionViewGroupInternal, INotifyCollectionChanged { internal CollectionViewGroupRoot(CollectionView view) : base("Root", null) { _view = view; } #region INotifyCollectionChanged ////// Raise this event when the (grouped) view changes /// public event NotifyCollectionChangedEventHandler CollectionChanged; ////// Notify listeners that this View has changed /// ////// CollectionViews (and sub-classes) should take their filter/sort/grouping /// into account before calling this method to forward CollectionChanged events. /// /// /// The NotifyCollectionChangedEventArgs to be passed to the EventHandler /// public void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { if (args == null) throw new ArgumentNullException("args"); if (CollectionChanged != null) CollectionChanged(this, args); } #endregion INotifyCollectionChanged ////// The description of grouping, indexed by level. /// public virtual ObservableCollectionGroupDescriptions { get { return _groupBy; } } /// /// A delegate to select the group description as a function of the /// parent group and its level. /// public virtual GroupDescriptionSelectorCallback GroupBySelector { get { return _groupBySelector; } set { _groupBySelector = value; } } // a group description has changed somewhere in the tree - notify host protected override void OnGroupByChanged() { if (GroupDescriptionChanged != null) GroupDescriptionChanged(this, EventArgs.Empty); } #region Internal Events and Properties internal event EventHandler GroupDescriptionChanged; internal IComparer ActiveComparer { get { return _comparer; } set { _comparer = value; } } ////// Culture to use during sorting. /// internal CultureInfo Culture { get { return _view.Culture; } } internal bool IsDataInGroupOrder { get { return _isDataInGroupOrder; } set { _isDataInGroupOrder = value; } } #endregion Internal Events and Properties #region Internal Methods internal void Initialize() { if (_topLevelGroupDescription == null) { _topLevelGroupDescription = new TopLevelGroupDescription(); } InitializeGroup(this, _topLevelGroupDescription, 0); } internal void AddToSubgroups(object item, bool loading) { AddToSubgroups(item, this, 0, loading); } internal bool RemoveFromSubgroups(object item) { return RemoveFromSubgroups(item, this, 0); } internal void RemoveItemFromSubgroupsByExhaustiveSearch(object item) { RemoveItemFromSubgroupsByExhaustiveSearch(this, item); } #endregion Internal Methods #region private methods // Initialize the given group void InitializeGroup(CollectionViewGroupInternal group, GroupDescription parentDescription, int level) { // set the group description for dividing the group into subgroups GroupDescription groupDescription = GetGroupDescription(group, parentDescription, level); group.GroupBy = groupDescription; // create subgroups for each of the explicit names ObservableCollection
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Tuple.cs
- ConfigurationElementProperty.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- TableParagraph.cs
- DataGridrowEditEndingEventArgs.cs
- GridViewUpdatedEventArgs.cs
- WindowInteropHelper.cs
- SourceItem.cs
- Point4D.cs
- XmlCharCheckingReader.cs
- DataRowExtensions.cs
- DateTimeOffset.cs
- SelectionGlyphBase.cs
- HashHelper.cs
- RegexCode.cs
- WebPageTraceListener.cs
- TextParagraphView.cs
- RegexGroupCollection.cs
- DesignerCalendarAdapter.cs
- PrinterUnitConvert.cs
- DateTimeConverter.cs
- MetadataArtifactLoaderFile.cs
- EFColumnProvider.cs
- WebPart.cs
- RadioButtonBaseAdapter.cs
- SocketPermission.cs
- LOSFormatter.cs
- XMLUtil.cs
- ContentType.cs
- ResourceAttributes.cs
- KeyedHashAlgorithm.cs
- UpdatePanelTriggerCollection.cs
- ControlEvent.cs
- URLIdentityPermission.cs
- WmiPutTraceRecord.cs
- SafeMarshalContext.cs
- SerializationEventsCache.cs
- XmlValidatingReaderImpl.cs
- WindowsListViewItemCheckBox.cs
- SecurityTokenRequirement.cs
- PersonalizationProviderHelper.cs
- Figure.cs
- GenericNameHandler.cs
- WebPartZoneBase.cs
- Point.cs
- AppliedDeviceFiltersDialog.cs
- BeginStoryboard.cs
- MetadataArtifactLoaderFile.cs
- ApplicationId.cs
- DispatcherFrame.cs
- DictionarySectionHandler.cs
- GPRECT.cs
- ControllableStoryboardAction.cs
- LineInfo.cs
- VersionConverter.cs
- ConfigurationManagerInternal.cs
- OutOfMemoryException.cs
- TemplateXamlTreeBuilder.cs
- BamlStream.cs
- ConfigurationProperty.cs
- DbTransaction.cs
- DesignTimeVisibleAttribute.cs
- ExclusiveTcpListener.cs
- ProfileService.cs
- TextOutput.cs
- oledbmetadatacolumnnames.cs
- sqlnorm.cs
- RankException.cs
- BitmapDecoder.cs
- TextAutomationPeer.cs
- FrameworkElement.cs
- TextTreeTextNode.cs
- TranslateTransform.cs
- SqlServer2KCompatibilityCheck.cs
- SortedDictionary.cs
- MetadataWorkspace.cs
- EncryptedKeyIdentifierClause.cs
- XmlEncoding.cs
- SoapHeader.cs
- PeerServiceMessageContracts.cs
- MouseEvent.cs
- HitTestFilterBehavior.cs
- DoubleConverter.cs
- HandlerFactoryWrapper.cs
- InstanceNameConverter.cs
- HtmlInputText.cs
- Image.cs
- EmptyStringExpandableObjectConverter.cs
- LicenseContext.cs
- BaseCodePageEncoding.cs
- HtmlSelectionListAdapter.cs
- ListItemCollection.cs
- CompilationUtil.cs
- DictionarySectionHandler.cs
- State.cs
- SetStateEventArgs.cs
- LocalFileSettingsProvider.cs
- DependsOnAttribute.cs
- XmlSchemaComplexContent.cs
- ADMembershipUser.cs