Как программно войти в режим редактирования в Tree Control внутри приложения Flex - PullRequest
1 голос
/ 17 января 2010

В приложении Flex есть древовидный элемент управления, который я хочу отредактировать двойным щелчком на элементе дерева. Я нашел свойства doubleClickEnabled = "true", doubleClick = "startEditMode ()" и editable = "true". С помощью этих функций я могу обнаружить двойной щелчок и изменить свойство editable на true на основе двойного щелчка.

Проблема в том, что после того, как я дважды щелкнул по пункту, мне нужно щелкнуть еще раз, чтобы действительно войти в режим редактирования. Это не кажется интуитивно понятным ...

Кто-нибудь знает решение этой проблемы?

Спасибо Markus

Ответы [ 4 ]

1 голос
/ 05 февраля 2010

Makrus,

Ознакомьтесь с решением, размещенным по адресу:

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

Должно быть именно то, что вы ищете!

1010 * -Давид *

0 голосов
/ 24 июля 2014

Это решение, которое работает для меня:

        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)"
    />
0 голосов
/ 19 февраля 2010

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

Это работает как шарм ... только что попробовал.

0 голосов
/ 17 января 2010

A List (суперкласс Tree) входит в режим редактирования при нажатии itemRenderer с его editable, установленным на true. В вашем случае editable имеет значение false, когда вы щелкаете по нему - оно устанавливается в true только в обработчике события doubleClick. Так что это ожидаемое поведение, хотя и нежелательное в этом случае.

Попробуйте: отправьте click с нажатием itemRenderer из обработчика событий dobleClick после установки editable в true.

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

Я не проверял это, но я думаю, что это может привести к тому, что вы снова нажмете после установки editable в значение true. Если это не сработает, опубликуйте рабочий код, чтобы мы могли настроить его и попытаться найти решение.

...