InMemoryCompositionModelBehavior
In-memory implementation of ICompositionModelBehavior: keeps nodes and links in observable collections and raises BehaviorChanged notifications, without any visual or built-in undo backing of its own (an IUndoManager can be attached externally). Suitable for headless hosts and for UI front-ends that render the model directly (e.g. the Avalonia diagram editor).
Implements: ICompositionModelBehavior<InMemoryCompositionModelNode, InMemoryCompositionModelLink>, ICloneable
Properties
public bool IsUndoManagerSuspended { get; set; }
value = inMemoryCompositionModelBehavior.IsUndoManagerSuspended
inMemoryCompositionModelBehavior.IsUndoManagerSuspended = value
Undo manager is suspended if this property is set to true.
public IEnumerable<InMemoryCompositionModelLink> Links { get; set; }
value = inMemoryCompositionModelBehavior.Links
inMemoryCompositionModelBehavior.Links = value
Links.
public bool Modifiable { get; set; }
value = inMemoryCompositionModelBehavior.Modifiable
inMemoryCompositionModelBehavior.Modifiable = value
Is it possible to edit a composite element diagram.
public IEnumerable<InMemoryCompositionModelNode> Nodes { get; set; }
value = inMemoryCompositionModelBehavior.Nodes
inMemoryCompositionModelBehavior.Nodes = value
Nodes.
public ICompositionModel Parent { get; set; }
value = inMemoryCompositionModelBehavior.Parent
inMemoryCompositionModelBehavior.Parent = value
Parent.
public IUndoManager UndoManager { get; set; }
value = inMemoryCompositionModelBehavior.UndoManager
inMemoryCompositionModelBehavior.UndoManager = value
IUndoManager
Methods
public InMemoryCompositionModelLink AddLink(InMemoryCompositionModelNode from, string fromPort, InMemoryCompositionModelNode to, string toPort)
result = inMemoryCompositionModelBehavior.AddLink(from, fromPort, to, toPort)
public void AddLink(InMemoryCompositionModelLink link)
inMemoryCompositionModelBehavior.AddLink(link)
public void AddNode(InMemoryCompositionModelNode node)
inMemoryCompositionModelBehavior.AddNode(node)
public bool CommitTransaction(string name)
result = inMemoryCompositionModelBehavior.CommitTransaction(name)
Commit transaction.
- name
- Operation name.
Returns: Operation result.
public InMemoryCompositionModelNode FindNodeByKey(string key)
result = inMemoryCompositionModelBehavior.FindNodeByKey(key)
Find node by key.
- key
- Key.
public IEnumerable<InMemoryCompositionModelLink> GetLinksForNode(InMemoryCompositionModelNode node)
result = inMemoryCompositionModelBehavior.GetLinksForNode(node)
public void RaiseCommited(string name, InMemoryCompositionModelNode node, IUndoableEdit op)
inMemoryCompositionModelBehavior.RaiseCommited(name, node, op)
public void RaiseLinksRemoved(InMemoryCompositionModelNode node)
inMemoryCompositionModelBehavior.RaiseLinksRemoved(node)
public void RaiseSocketAdded(InMemoryCompositionModelNode node)
inMemoryCompositionModelBehavior.RaiseSocketAdded(node)
public void RemoveLink(InMemoryCompositionModelLink link)
inMemoryCompositionModelBehavior.RemoveLink(link)
public void RemoveLink(InMemoryCompositionModelNode from, string fromPort, InMemoryCompositionModelNode to, string toPort)
inMemoryCompositionModelBehavior.RemoveLink(from, fromPort, to, toPort)
public void RemoveNode(InMemoryCompositionModelNode node)
inMemoryCompositionModelBehavior.RemoveNode(node)
public bool RollbackTransaction()
result = inMemoryCompositionModelBehavior.RollbackTransaction()
Rollback transaction.
Returns: Operation result.
public bool StartTransaction(string name)
result = inMemoryCompositionModelBehavior.StartTransaction(name)
Start transaction.
- name
- Operation name.
Returns: Operation result.
Events
public event Action<ValueTuple<ModelChange, object, string, object, object, object, object>> BehaviorChanged
inMemoryCompositionModelBehavior.BehaviorChanged += handler
Changed event.