private void DiscardActionItemsRecursively(IEnumerable<IActionItem> actionItems, ActionItemDiscardType discardType) { foreach (var actionItem in actionItems) { var viewModelActionItem = actionItem as ViewModelActionItem; if (viewModelActionItem != null) { if (discardType == ActionItemDiscardType.Swallowed) { discardedActionItems.Add(viewModelActionItem); } else if (discardType != ActionItemDiscardType.UndoRedoInProgress) { viewModelActionItem.Dirtiables.ForEach(x => x.DiscardActionItem(viewModelActionItem)); } } var aggregateActionItem = actionItem as IAggregateActionItem; if (aggregateActionItem != null) { DiscardActionItemsRecursively(aggregateActionItem.ActionItems, discardType); } } }
public DiscardedActionItemsEventArgs(ActionItemDiscardType type, T[] actionItems) : base(actionItems) { Type = type; }
private void DiscardActionItemsRecursively(IEnumerable <IActionItem> actionItems, ActionItemDiscardType discardType) { var dirtiables = new HashSet <IDirtiableViewModel>(); foreach (var viewModelActionItem in EnumerateViewModelActionItems(actionItems)) { if (discardType == ActionItemDiscardType.Swallowed) { discardedActionItems.Add(viewModelActionItem); } else if (discardType != ActionItemDiscardType.UndoRedoInProgress) { var viewModelActionItemCopy = viewModelActionItem; viewModelActionItem.Dirtiables.ForEach(dirtiable => { dirtiable.DiscardActionItem(viewModelActionItemCopy); dirtiables.Add(dirtiable); }); } } foreach (var dirtiable in dirtiables) { dirtiable.NotifyActionStackChange(ActionStackChange.Discarded); } }
private void DiscardActionItemsRecursively(IEnumerable<IActionItem> actionItems, ActionItemDiscardType discardType) { var dirtiables = new HashSet<IDirtiableViewModel>(); foreach (var viewModelActionItem in EnumerateViewModelActionItems(actionItems)) { if (discardType == ActionItemDiscardType.Swallowed) { discardedActionItems.Add(viewModelActionItem); } else if (discardType != ActionItemDiscardType.UndoRedoInProgress) { var viewModelActionItemCopy = viewModelActionItem; viewModelActionItem.Dirtiables.ForEach(dirtiable => { dirtiable.DiscardActionItem(viewModelActionItemCopy); dirtiables.Add(dirtiable); }); } } foreach (var dirtiable in dirtiables) { dirtiable.NotifyActionStackChange(ActionStackChange.Discarded); } }
private void DiscardActionItemsRecursively(IEnumerable <IActionItem> actionItems, ActionItemDiscardType discardType) { foreach (var actionItem in actionItems) { var viewModelActionItem = actionItem as ViewModelActionItem; if (viewModelActionItem != null) { if (discardType == ActionItemDiscardType.Swallowed) { discardedActionItems.Add(viewModelActionItem); } else if (discardType != ActionItemDiscardType.UndoRedoInProgress) { viewModelActionItem.Dirtiables.ForEach(x => x.DiscardActionItem(viewModelActionItem)); } } var aggregateActionItem = actionItem as IAggregateActionItem; if (aggregateActionItem != null) { DiscardActionItemsRecursively(aggregateActionItem.ActionItems, discardType); } } }