New to Telerik UI for WPFStart a free 30-day trial

This class wraps a hierarchical collection with observable collection, containing the flattened items, wrapped in HierarchicalItem. This collection doesn't track the source collection for changes.

Definition

Namespace:Telerik.Windows.Core

Assembly:Telerik.Windows.Scheduling.Core.dll

Syntax:

C#
public class HierarchicalCollectionAdapter : PropertyChangedBase, IList<HierarchicalItem>, ICollection<HierarchicalItem>, IEnumerable<HierarchicalItem>, IEnumerable, IDisposable, IHierarchicalCollectionAdapter<HierarchicalItem>, INotifyCollectionChanged, INotifyPropertyChanged, IEditableHierarchical

Inheritance: objectPropertyChangedBaseHierarchicalCollectionAdapter

Derived Classes: SchedulingHierarchicalAdapter

Implements: ICollection<HierarchicalItem>IDisposableIEditableHierarchicalIEnumerableIEnumerable<HierarchicalItem>IHierarchicalCollectionAdapter<HierarchicalItem>IList<HierarchicalItem>INotifyCollectionChangedINotifyPropertyChanged...

Inherited Members PropertyChangedBase.OnPropertyChanged(PropertyChangedEventArgs)PropertyChangedBase.OnPropertyChanged(string)PropertyChangedBase.OnPropertyChanged<T>(Expression<Func<T>>)PropertyChangedBase.PropertyChanged

Constructors

Initializes a new instance of the HierarchicalCollectionAdapter class. It doesn't track the source hierarchical collection for changes.

C#
public HierarchicalCollectionAdapter(IEnumerable hierarchicalItems, Func<HierarchicalItem, bool> shouldExpandedByDefault)
Parameters:hierarchicalItemsIEnumerable

The hierarchical collection to be flattened.

shouldExpandedByDefaultFunc<HierarchicalItem, bool>

Properties

Methods

C#
protected ~HierarchicalCollectionAdapter()
C#
protected virtual HierarchicalItem CreateWrapper(HierarchicalItem parent, object item, int sourceIndex)
Parameters:parentHierarchicalItemitemobjectsourceIndexintReturns:

HierarchicalItem

C#
public void Dispose()

Implements: IDisposable.Dispose()

C#
protected virtual void Dispose(bool disposing)
Parameters:disposingbool

When overridden in the inherited class, this method returns all the children of the provided item.

C#
protected virtual IEnumerable GetChildren(object item)
Parameters:itemobject

The item, which children are to be retrieved.

Returns:

IEnumerable

All the children of the provided item.

C#
public HierarchicalItem GetItemWrapperByItemKey(object key)
Parameters:keyobjectReturns:

HierarchicalItem

Implements: IHierarchicalCollectionAdapter<HierarchicalItem>.GetItemWrapperByItemKey(object)

When overridden in the inherited class, this method is used to perform additional initializations to the newly created wrapper. It is the best place to initialize the IsExpanded and CanExpand properties. This method is called when a new wrapper is initialized. In the base method only the SourceItem is set and an event handler is hooked to the PropertyChanged event to track changes in the IsExpanded property.

C#
protected virtual void InitializeWrapper(HierarchicalItem wrapper, object item)
Parameters:wrapperHierarchicalItem

The wrapper that was created for the item.

itemobject

The item that have been wrapped.

C#
protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
Parameters:eNotifyCollectionChangedEventArgs
C#
protected virtual void OnItemPropertyChanged(ItemPropertyChangedEventArgs<HierarchicalItem> e)
Parameters:eItemPropertyChangedEventArgs<HierarchicalItem>
C#
protected virtual void ResetSource(IEnumerable source)
Parameters:sourceIEnumerable
C#
protected virtual object SelectKeyForItem(object item)
Parameters:itemobjectReturns:

object

C#
protected bool ShouldExpandByDefault(HierarchicalItem item)
Parameters:itemHierarchicalItemReturns:

bool

C#
public IEnumerable<HierarchicalItem> TakeBetween(int startIndex, int endIndex)
Parameters:startIndexintendIndexintReturns:

IEnumerable<HierarchicalItem>

Implements: IHierarchicalCollectionAdapter<HierarchicalItem>.TakeBetween(int, int)

Events

Occurs when the collection changes.

C#
public event NotifyCollectionChangedEventHandler CollectionChanged

Implements: INotifyCollectionChanged.CollectionChanged

C#
public event EventHandler<ItemPropertyChangedEventArgs<HierarchicalItem>> ItemPropertyChanged