public void Redo()
{
ThrowIfUndoGroupOpen();
if (redostack.Count > 0)
{
LastGroupDescriptor = null;
allowContinue = false;
var uedit = redostack.PopBack();
undostack.PushBack(uedit);
state = StatePlayback;
try
{
RunRedo(uedit);
}
finally
{
state = StateListen;
FileModified(1);
CallEndUpdateOnAffectedDocuments();
}
RecalcIsOriginalFile();
if (redostack.Count == 0)
NotifyPropertyChanged("CanRedo");
if (undostack.Count == 1)
NotifyPropertyChanged("CanUndo");
}
}