繁体   English   中英

如何在Flex应用程序内的树控件中以编程方式进入编辑模式

[英]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时, ListTree超类)进入编辑模式。 在您的情况下,当您单击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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM