Collections
We briefly introduced MementoEntity and MementoEntityCollection and seen how to track changes in a simple graph.
We can go further and introduce collection change tracking:
var list = new MementoEntityCollection<String>();
memento.Attach(list);
list.Add("a");
list.Add("b");
list.Add("c");
var count = list.Count; //3
memento.Undo();
//list.Count 2
memento.Redo();
//list.Count 3The MementoEntityCollection<T> being a memento entity will keep track of changes applied to collection structure. Each change will be tracked: Add, Remove, Clear, Insert, InsertAt, etc...
var list = new MementoEntityCollection<Person>();
memento.Attach(list);
list.Add(new Person());Adding a MementoEntity, such as Person, will automatically trigger the memento that will start tracking the Person instance:
As expected the changes stack is handled in the correct order. The next step is to understand how to handle change tracking in complex objects graph.
Last updated