Class
HierarchicalCollectionAdapter

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:

cs-api-definition
[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
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

HierarchicalCollectionAdapter(IEnumerable, Func<HierarchicalItem, bool>)

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

Declaration

cs-api-definition
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public HierarchicalCollectionAdapter(IEnumerable hierarchicalItems, Func<HierarchicalItem, bool> shouldExpandedByDefault)

Parameters

hierarchicalItems

IEnumerable

The hierarchical collection to be flattened.

shouldExpandedByDefault

Func<HierarchicalItem, bool>

Properties

Count

Declaration

cs-api-definition
public int Count { get; }

Property Value

int

Implements ICollection<HierarchicalItem>.CountIHierarchicalCollectionAdapter<HierarchicalItem>.Count

this[int]

Declaration

cs-api-definition
public HierarchicalItem this[int index] { get; set; }

Parameters

index

int

Property Value

HierarchicalItem

Implements IList<HierarchicalItem>.this[int]IHierarchicalCollectionAdapter<HierarchicalItem>.this[int]

Methods

CreateWrapper(HierarchicalItem, object, int)

Declaration

cs-api-definition
protected virtual HierarchicalItem CreateWrapper(HierarchicalItem parent, object item, int sourceIndex)

Parameters

parent

HierarchicalItem

item

object

sourceIndex

int

Returns

HierarchicalItem

Dispose()

Declaration

cs-api-definition
public void Dispose()

Implements IDisposable.Dispose()

Dispose(bool)

Declaration

cs-api-definition
protected virtual void Dispose(bool disposing)

Parameters

disposing

bool

GetChildren(object)

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

Declaration

cs-api-definition
protected virtual IEnumerable GetChildren(object item)

Parameters

item

object

The item, which children are to be retrieved.

Returns

IEnumerable

All the children of the provided item.

GetItemWrapperByItemKey(object)

Declaration

cs-api-definition
public HierarchicalItem GetItemWrapperByItemKey(object key)

Parameters

key

object

Returns

HierarchicalItem

Implements IHierarchicalCollectionAdapter<HierarchicalItem>.GetItemWrapperByItemKey(object)

InitializeWrapper(HierarchicalItem, 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.

Declaration

cs-api-definition
protected virtual void InitializeWrapper(HierarchicalItem wrapper, object item)

Parameters

wrapper

HierarchicalItem

The wrapper that was created for the item.

item

object

The item that have been wrapped.

OnCollectionChanged(NotifyCollectionChangedEventArgs)

Declaration

cs-api-definition
protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs e)

Parameters

e

NotifyCollectionChangedEventArgs

OnItemPropertyChanged(ItemPropertyChangedEventArgs<HierarchicalItem>)

Declaration

cs-api-definition
protected virtual void OnItemPropertyChanged(ItemPropertyChangedEventArgs<HierarchicalItem> e)

Parameters

e

ItemPropertyChangedEventArgs<HierarchicalItem>

ResetSource(IEnumerable)

Declaration

cs-api-definition
protected virtual void ResetSource(IEnumerable source)

Parameters

source

IEnumerable

SelectKeyForItem(object)

Declaration

cs-api-definition
protected virtual object SelectKeyForItem(object item)

Parameters

item

object

Returns

object

ShouldExpandByDefault(HierarchicalItem)

Declaration

cs-api-definition
protected bool ShouldExpandByDefault(HierarchicalItem item)

Parameters

item

HierarchicalItem

Returns

bool

TakeBetween(int, int)

Declaration

cs-api-definition
public IEnumerable<HierarchicalItem> TakeBetween(int startIndex, int endIndex)

Parameters

startIndex

int

endIndex

int

Returns

IEnumerable<HierarchicalItem>

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

~HierarchicalCollectionAdapter()

Declaration

cs-api-definition
protected ~HierarchicalCollectionAdapter()

Events

CollectionChanged

Occurs when the collection changes.

Declaration

cs-api-definition
public event NotifyCollectionChangedEventHandler CollectionChanged

Event Value

NotifyCollectionChangedEventHandler

Implements INotifyCollectionChanged.CollectionChanged

ItemPropertyChanged

Declaration

cs-api-definition
public event EventHandler<ItemPropertyChangedEventArgs<HierarchicalItem>> ItemPropertyChanged

Event Value

EventHandler<ItemPropertyChangedEventArgs<HierarchicalItem>>