public void Undo(T current) { if (HasUndo) { T un = GetUndo(current); _owner.Apply(un); _owner.FireStateChange(); } }