void editor_E_EditorValueChanging(wTreeNodeItem item, wEditorValueChangingArgs args) { if (E_TreeNodeEditorValueChanging != null) { E_TreeNodeEditorValueChanging(item, args); } }
/// <summary> /// 상속받은 에디터는 Value 를 수정한 뒤에는 이 함수를 호출해야 한다. /// </summary> /// <param name="oldValue"></param> /// <param name="newValue"></param> internal void OnEditorValueChanged(object oldValue, object newValue, bool callOnce = false) { if (_isValueChanged) { return; } if (callOnce) { _isValueChanged = true; } if (oldValue.Equals(newValue)) { return; //editor value is not changed... } wEditorValueChangingArgs args = new wEditorValueChangingArgs(oldValue, newValue); if (E_EditorValueChanging != null) { E_EditorValueChanging(_itemToEdit, args); } if (args.IsCanceled) { if (E_EditorValueChangeCanceled != null) { E_EditorValueChangeCanceled(ItemToEdit.OwnerNode, ItemToEdit); } } else { newValue = args.NewValue; if (oldValue.Equals(newValue) == false) { _itemToEdit.SetValue(newValue); _itemToEdit.OwnerNode.DrawBuffer(); DrawHandler.ReDrawTree(false); if (E_EditorValueChanged != null) { E_EditorValueChanged(ItemToEdit, oldValue, newValue); } } else { if (E_EditorValueChangeCanceled != null) { E_EditorValueChangeCanceled(ItemToEdit.OwnerNode, ItemToEdit); } } } }