Flex Tree не выделяет («выделяет») выбранные объекты - PullRequest
1 голос
/ 06 ноября 2011

У меня есть массив элементов, которые должны быть выбраны в моем древовидном элементе управления.Как вы можете видеть из моего кода ниже, я связываю этот массив со свойством selectedIndices дерева.SelectedItems неправильно выбираются в дереве (выбираются некоторые другие элементы, и всегда выбирается root). Кажется, чтоlex «игнорирует» мои элементы (выбирает некоторые другие индексы).Я что-то пропустил?

Возможно, я поступаю неправильно?

Спасибо за вашу помощь!

Мой XMLList: -

<fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <fx:XMLList id="XMLList">
        <node>
            <node name="max">
                <node name="Emanuele"
                      surname="Tatti" age="23" wage="1200"/>
                <node name="Francesco" 
                      surname="Rapana " age="22" wage="1000"/>
                <node name="Constantin"
                      surname="Moldovanu" age="23" wage="1200"/>
                <node name="Marco" 
                      surname="Casario" age="29" wage="1500">
                    <node name="Marco" 
                          surname="Casario" age="29" wage="1500">
                        <node name="Marco" 
                              surname="Casario" age="29" wage="1500">
                            <node name="Marco" 
                                  surname="Casario" age="29" wage="1500">
                            </node>
                        </node>
                    </node>                 
                </node>
            </node>

        </node>
        </fx:XMLList>
</fx:Declarations>

Функция My Action Script: -

public function select_tree():Void 
{
tree.validateNow();
var allItems:Array = new Array();
for(var n:Int =2;n<7;n+2)       
{
        allItems[n]=n; // o/p- 2,4,6
}

tree.selectedIndices = allItems1;   //2,4,6 items should select ,but 0,2,4,5 are selected why?
      }

*****My MXML:-*****
<mx:Button id="btn" label="Find Unmatch Nodes" width="221" height="30" click="select_tree()"/>



<mx:Tree id="tree"  right="10" top="54" bottom="10" width="49.5%" dataProvider="{XMLList}"
    fontFamily="Verdana" fontSize="11" showScrollTips="true"
    allowMultipleSelection="true"
    alternatingItemColors="[#F5F5F5]"
    labelField="@label" selectionColor="#ECF335" showRoot="false"/>

1 Ответ

2 голосов
/ 06 ноября 2011

Вы допустили ошибку в своем коде, установив для tree.selectedIndices значение allItems1 (вместо allItems).

tree.selectedIndices = allItems1;

Почему бы вам просто не создать массив Bindable и не установить для него selectedIndicesсвойство дерева?

т.е.

[Bindable]
public var selectedTreeValues:Array = new Array();

...

<mx:Tree id="tree"  right="10" top="54" bottom="10" width="49.5%" 
    dataProvider="{XMLList}"
    fontFamily="Verdana" fontSize="11" showScrollTips="true"
    allowMultipleSelection="true"
    alternatingItemColors="[#F5F5F5]"
    labelField="@label" selectionColor="#ECF335" showRoot="false"
    selectedIndices="selectedTreeValues"
/>

Наконец, отследить это, вместо того, чтобы делать это вручную?Одна из красот Flex - возможность использовать значения Binding.

...