Skip to content

Node Types API

IChangeNode

Node interface implemented by all node types.

csharp
public interface IChangeNode
{
    string NodeName { get; }
    IChangeNode? Parent { get; }
    IReadOnlyList<IChangeNode> Children { get; }
    event EventHandler<BubblingChange>? NodeChanged;
    void AttachChild(IChangeNode child);
    void DetachChild(IChangeNode child);
}

ListBubblingNode<T>

List node for ordered collections.

Properties

PropertyTypeDescription
ItemsIReadOnlyList<T>Read-only element list
CountintElement count

Methods

MethodDescription
Add(T item)Add element
Insert(int index, T item)Insert at position
RemoveAt(int index)Remove at position
Remove(T item)Remove element
PopulateSilently(IEnumerable<T> items)Silent populate

DictionaryBubblingNode<TKey, TValue>

Dictionary node for key-value pairs.

Properties

PropertyTypeDescription
KeysIReadOnlyCollection<TKey>Read-only keys
ItemsIReadOnlyDictionary<TKey, TValue>Read-only dictionary
CountintElement count

Methods

MethodDescription
Put(TKey key, TValue value)Add or update
TryGet(TKey key, out TValue value)Try get value
Remove(TKey key)Remove key-value pair
PopulateSilently(...)Silent populate

Concurrent Nodes

ConcurrentBagBubblingNode<T>

Thread-safe list node.

ConcurrentDictionaryBubblingNode<TKey, TValue>

Thread-safe dictionary node.

Released under the MIT License