[英]How can I programmatically enter the edit mode in a Tree Control inside a Flex Application
我的Flex应用程序中有一个树控件,我想双击树项目来对其进行编辑。 我发现了属性doubleClickEnabled =“ true”,doubleClick =“ startEditMode()”和editable =“ true”。 使用这些功能,我可以检测到双击,并且可以基于双击将editable属性更改为true。
问题是我双击一个项目后,我必须再次单击才能真正进入编辑模式。 这似乎一点都不直观。
有人知道该问题的解决方案吗?
谢谢马库斯
马库斯
查看发布在以下位置的解决方案:
http://www.sephiroth.it/weblog/archives/2009/12/flex_3_tree_double-click_to_edit.php
应该就是您要找的东西!
-大卫
单击itemRenderer
,并将其editable
设置为true
时, List
( Tree
超类)进入编辑模式。 在您的情况下,当您单击editable
时,它为doubleClick
仅在doubleClick
事件处理程序中将其设置为true。 因此,这是预期的行为,尽管在这种情况下不希望这样做。
尝试以下操作:在将editable
设置为true
之后,使用dobleClick
事件处理程序中的clicked itemRenderer
dobleClick
一次click
。
clickedItemRenderer.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
我尚未对此进行测试,但我认为这可能会让您相信将editable
设置为true后再次单击该项目。 如果这不起作用,请发布有效代码,以便我们进行调整并尝试提出解决方案。
这是对我有用的解决方案:
private var ignoreEditing:Boolean = true;
protected function doubleClickHandler(event: MouseEvent ):void
{
ignoreEditing = false;
}
protected function itemEditBeginningHandler(event:ListEvent):void
{
if(ignoreEditing){
event.preventDefault();
}
else{
ignoreEditing = true;
}
}
<mx:Tree
doubleClickEnabled="true"
editable="true"
itemEditBegin="itemEditBeginningHandler(event)"
doubleClick="doubleClickHandler(event)"
/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.