void IHistory.Snapshot <T>(T previous, T next, Action <T> update) { var undo = UndoRedo.Create(() => update(previous), () => update(next)); if (_redos.Count > 0) { _redos.Clear(); } _undos.Push(undo); }