private protected virtual void ExecuteChangeText(WriteableChangeTextOperation operation) { Node ParentNode = operation.ParentNode; string PropertyName = operation.PropertyName; string NewText = operation.NewText; IWriteableNodeState State = (IWriteableNodeState)GetState(ParentNode); Debug.Assert(State != null); Debug.Assert(State.ValuePropertyTypeTable.ContainsKey(PropertyName)); Debug.Assert(State.ValuePropertyTypeTable[PropertyName] == Constants.ValuePropertyType.String); string OldText = NodeTreeHelper.GetString(State.Node, PropertyName); Debug.Assert(OldText != null); NodeTreeHelper.SetString(State.Node, PropertyName, NewText); operation.Update(State, OldText); NotifyTextChanged(operation); }