public void CaptureNewValue(DependencyObject target, DependencyProperty property, object newValue) { var holder = new CaptureKeyHolder { Target = target, Property = property }; if (captureHolders.ContainsKey(holder)) { object oldValue = captureHolders[holder]; captureHolders.Remove(holder); if (!Object.Equals(oldValue, newValue)) { var action = new DependencyPropertyChangedUndoAction(target, property, oldValue, newValue); AddAction(action); } } }