private void AddInput(CKlaxVariable parameter, bool bIsNewParameter) { var newViewmodel = new CEntityVariableViewModel(parameter); var functionGraph = m_functionGraph; void Redo() { newViewmodel.PropertyChanged += OnParameterPropertyChanged; functionGraph.InputParameters.Add(parameter); InputParameters.Add(newViewmodel); functionGraph.RebuildFunctionNodes(); } void Undo() { newViewmodel.PropertyChanged -= OnParameterPropertyChanged; InputParameters.Remove(newViewmodel); functionGraph.InputParameters.Remove(parameter); functionGraph.RebuildFunctionNodes(); } newViewmodel.DeleteCommand = new CRelayCommand(arg => { Undo(); UndoRedoUtility.Record(new CRelayUndoItem(Redo, Undo)); }); if (bIsNewParameter) { Redo(); } else { newViewmodel.PropertyChanged += OnParameterPropertyChanged; InputParameters.Add(newViewmodel); } if (bIsNewParameter) { UndoRedoUtility.Record(new CRelayUndoItem(Undo, Redo)); } }
private void AddInput(CKlaxVariable parameter, bool bIsNewParameter) { var newViewmodel = new CEntityVariableViewModel(parameter); void Redo() { m_interfaceFunction.InputParameters.Add(parameter); InputParameters.Add(newViewmodel); } void Undo() { InputParameters.Remove(newViewmodel); m_interfaceFunction.InputParameters.Remove(parameter); } newViewmodel.DeleteCommand = new CRelayCommand(arg => { Undo(); UndoRedoUtility.Record(new CRelayUndoItem(Redo, Undo)); }); if (bIsNewParameter) { Redo(); } else { InputParameters.Add(newViewmodel); } if (bIsNewParameter) { UndoRedoUtility.Record(new CRelayUndoItem(Undo, Redo)); } }