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
- SimpleHandlerBuildProvider.cs
- NumericPagerField.cs
- CollectionViewProxy.cs
- KnownBoxes.cs
- SourceFileBuildProvider.cs
- AppDomain.cs
- ArithmeticException.cs
- SiteMapNodeCollection.cs
- CachingHintValidation.cs
- NativeMethods.cs
- WaitHandle.cs
- ProgressBarRenderer.cs
- KeyPressEvent.cs
- BindingParameterCollection.cs
- SerializationSectionGroup.cs
- Message.cs
- DefaultValueConverter.cs
- BackgroundFormatInfo.cs
- _NestedMultipleAsyncResult.cs
- ExpressionBindingCollection.cs
- UnsafeNativeMethods.cs
- PenCursorManager.cs
- InstanceOwner.cs
- UserControlBuildProvider.cs
- AnnotationService.cs
- FreezableCollection.cs
- RectKeyFrameCollection.cs
- ListView.cs
- Int32Rect.cs
- GuidTagList.cs
- TemplateXamlParser.cs
- WsrmTraceRecord.cs
- SqlTriggerAttribute.cs
- CompilerGlobalScopeAttribute.cs
- Stroke.cs
- SplitterPanel.cs
- WorkflowViewService.cs
- HybridDictionary.cs
- BaseConfigurationRecord.cs
- DataGridColumnHeaderAutomationPeer.cs
- TraceSection.cs
- WeakReferenceEnumerator.cs
- HttpListenerResponse.cs
- BitmapEffectDrawingContent.cs
- SQLMoney.cs
- SchemaCollectionCompiler.cs
- TextParaClient.cs
- XmlStreamNodeWriter.cs
- LocalizationParserHooks.cs
- ExitEventArgs.cs
- SchemaManager.cs
- ResXBuildProvider.cs
- PolicyManager.cs
- FastPropertyAccessor.cs
- TdsEnums.cs
- CountdownEvent.cs
- Positioning.cs
- ReadOnlyCollection.cs
- EntityDataSourceColumn.cs
- DescendantOverDescendantQuery.cs
- AnimationException.cs
- RelationshipWrapper.cs
- XmlNamespaceManager.cs
- CompressionTracing.cs
- RowType.cs
- TextEditorTyping.cs
- PeerMessageDispatcher.cs
- WindowsScroll.cs
- Stacktrace.cs
- QilPatternVisitor.cs
- TypeDescriptionProvider.cs
- ScrollChrome.cs
- MatrixCamera.cs
- ManifestResourceInfo.cs
- LinqTreeNodeEvaluator.cs
- SafeNativeMethods.cs
- DesignTimeVisibleAttribute.cs
- AlignmentXValidation.cs
- SystemTcpConnection.cs
- SortExpressionBuilder.cs
- Event.cs
- OutputCacheSection.cs
- HttpCapabilitiesSectionHandler.cs
- DragEvent.cs
- OdbcCommandBuilder.cs
- SignatureDescription.cs
- ObjectDataSource.cs
- SqlNotificationEventArgs.cs
- BufferBuilder.cs
- FixedNode.cs
- SchemaMapping.cs
- Size.cs
- CreateParams.cs
- CompilerGeneratedAttribute.cs
- IncrementalCompileAnalyzer.cs
- COM2PropertyDescriptor.cs
- ErrorTableItemStyle.cs
- BitmapInitialize.cs
- SqlTransaction.cs
- DataSourceProvider.cs