1

我的 Flex 应用程序中有一个树控件,我想在双击树项时对其进行编辑。我找到了属性 doubleClickEnabled="true"、doubleClick="startEditMode()" 和 editable="true"。使用这些功能,我可以检测到双击,并且可以根据双击将可编辑属性更改为 true。

问题是,在我双击一个项目后,我必须再次单击才能真正进入编辑模式。这似乎根本不直观......

有人知道该问题的解决方案吗?

谢谢马库斯

4

4 回答 4

1

马克鲁斯,

查看发布在以下位置的解决方案:

http://www.sephiroth.it/weblog/archives/2009/12/flex_3_tree_double-click_to_edit.php

应该正是您正在寻找的!

-大卫

于 2010-02-04T22:32:44.413 回答
0

http://tush.wordpress.com/2008/10/06/flex-double-click-to-edit-functionality-for-list-control/

This works like a charm... just tried it.

于 2010-02-19T19:46:32.703 回答
0

一个List(的超类)在被点击并设置为Tree时进入编辑模式。在您的情况下,当您单击它时,它是 false - 它仅在事件处理程序中设置为 true。所以这是预期的行为,尽管在这种情况下不需要。itemRenderereditabletrueeditabledoubleClick

试试这个clickitemRendererdobleClick设置editabletrue.

clickedItemRenderer.dispatchEvent(new MouseEvent(MouseEvent.CLICK));

我没有对此进行测试,但我认为这可能会让 flex 相信在设置editable为 true 后再次点击了该项目。如果这不起作用,请发布一个工作代码,以便我们可以对其进行调整并尝试提出解决方案。

于 2010-01-17T10:24:20.747 回答
0

这是对我有用的解决方案:

        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)"
    />
于 2014-07-24T14:12:02.520 回答