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();
var _count = list.Count; //2
memento.Redo();
var __count = list.Count; //3The MementoEntityCollection<T> being a memento entity will keep track of changes applied to collection structure. Each change will be tracked, starting from Add and Remove to 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