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
- InternalResources.cs
- FormsAuthenticationUser.cs
- WindowsIdentity.cs
- GraphicsPath.cs
- SecurityCriticalDataForSet.cs
- GetReadStreamResult.cs
- AutoSizeComboBox.cs
- Listbox.cs
- Graph.cs
- ToolboxBitmapAttribute.cs
- ServiceBuildProvider.cs
- ItemList.cs
- ConstNode.cs
- DataControlLinkButton.cs
- Variable.cs
- CustomErrorsSectionWrapper.cs
- CompilerError.cs
- WhitespaceRuleReader.cs
- DataTableCollection.cs
- ComponentGuaranteesAttribute.cs
- __Error.cs
- dbenumerator.cs
- NamedPipeTransportSecurityElement.cs
- ValueQuery.cs
- MessageSecurityProtocolFactory.cs
- ProcessHostConfigUtils.cs
- XmlNamespaceDeclarationsAttribute.cs
- TraceLevelStore.cs
- TranslateTransform3D.cs
- BaseTreeIterator.cs
- MsmqBindingElementBase.cs
- AdapterUtil.cs
- RelationshipManager.cs
- DataListAutoFormat.cs
- Schema.cs
- DataView.cs
- SystemIcmpV4Statistics.cs
- ValueUtilsSmi.cs
- SmtpSection.cs
- SmiMetaDataProperty.cs
- LeaseManager.cs
- ObjectDataSourceSelectingEventArgs.cs
- Range.cs
- StandardToolWindows.cs
- SystemColors.cs
- ClientSettingsSection.cs
- DefaultHttpHandler.cs
- AttributeTableBuilder.cs
- XhtmlBasicSelectionListAdapter.cs
- TextDecorationCollection.cs
- EntityDataSourceWizardForm.cs
- DoubleConverter.cs
- MouseEventArgs.cs
- SharedPersonalizationStateInfo.cs
- PrintPreviewControl.cs
- TypeResolvingOptionsAttribute.cs
- SettingsPropertyWrongTypeException.cs
- TabControl.cs
- StatusBarItem.cs
- UniqueConstraint.cs
- SelectionHighlightInfo.cs
- RightsManagementPermission.cs
- FilterException.cs
- SelectionProviderWrapper.cs
- PromptStyle.cs
- TemplateBindingExtension.cs
- SeverityFilter.cs
- CatalogPartChrome.cs
- HtmlLink.cs
- ContainerFilterService.cs
- StringFunctions.cs
- Button.cs
- TypeDependencyAttribute.cs
- WebHttpSecurityModeHelper.cs
- COM2ExtendedBrowsingHandler.cs
- SessionIDManager.cs
- SharedDp.cs
- GenericPrincipal.cs
- DataGridViewRowHeaderCell.cs
- PrintPreviewDialog.cs
- TitleStyle.cs
- PathTooLongException.cs
- ManualWorkflowSchedulerService.cs
- CapabilitiesUse.cs
- ArraySubsetEnumerator.cs
- AspNetSynchronizationContext.cs
- OleCmdHelper.cs
- XmlAttributeCollection.cs
- CompilerTypeWithParams.cs
- HebrewCalendar.cs
- ContractsBCL.cs
- ResourceBinder.cs
- Variable.cs
- ExeContext.cs
- DataException.cs
- ComplusTypeValidator.cs
- Aggregates.cs
- DropDownHolder.cs
- SeekableReadStream.cs
- CommandEventArgs.cs