Workaround:
class MyTreeView : RadTreeView
{
protected override RadTreeViewElement CreateTreeViewElement()
{
return new MyTreeViewElement();
}
public override string ThemeClassName
{
get
{
return typeof(RadTreeView).FullName;
}
}
}
class MyTreeViewElement : RadTreeViewElement
{
bool IsPerformingEndEdit = false;
protected override bool EndEditCore(bool commitChanges)
{
if (!IsEditing || IsPerformingEndEdit)
{
return false;
}
TreeNodeElement nodeElement = GetElement(this.SelectedNode);
if (nodeElement == null)
{
return false;
}
this.IsPerformingEndEdit = true;
if (commitChanges && this.ActiveEditor.IsModified)
{
SaveEditorValue(nodeElement, this.ActiveEditor.Value);
}
this.ActiveEditor.EndEdit();
nodeElement.RemoveEditor(this.ActiveEditor);
this.InvalidateMeasure();
UpdateLayout();
OnEdited(new TreeNodeEditedEventArgs(nodeElement, ActiveEditor, !commitChanges));
typeof(RadTreeViewElement).GetField("activeEditor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(this, null);
this.IsPerformingEndEdit = false;
return false;
}
protected override Type ThemeEffectiveType
{
get
{
return typeof(RadTreeViewElement);
}
}
}