2010-09-22 2 views
0

Я работаю над компонентом дерева, используя XMLLIST в качестве поставщика данных.Выберите элемент дерева

<list> 
    <menuItem label="Home" menuItemId="1" > 
     <menuItem label="Info 1" menuItemId ="4"></menuItem> 
    </menuItem> 
    <menuItem label="Services" menuItemId="2" > 
    </menuItem> 
    <menuItem label="About" menuItemId="3" > 
    </menuItem> 
</list> 

Мне нужно, чтобы выбрать вложенный узел с помощью свойства «menuItemId», не зная пример index.For, выберите элемент с menuItemId 4.

Есть идеи?

ответ

0

Попробуйте что-то вроде этого, фильтрация поставщика данных дерева, чтобы найти правильный объект, а затем получить индекс объекта в поставщике данных и говорят дерево, чтобы выбрать этот пункт. Кажется, это крутой способ сделать это, но я думаю, что это лучшее, что я могу придумать прямо сейчас.

var filter:Array = tree.dataProvider.toArray().filter(filterFunc) 
if (filter.length > 0) 
    tree.selectedIndex = tree.dataProvider.getItemIndex(filter[0]); 

protected function filterFunc(item:*, index:int, array:Array):Boolean{ 
    return (item as MenuItem).menuItemId == "2" 
} 
0

Использование E4X. Например,

var myList:XMLList = <list> 
    <menuItem label="Home" menuItemId="1" > 
     <menuItem label="Info 1" menuItemId ="4"></menuItem> 
    </menuItem> 
    <menuItem label="Services" menuItemId="2" > 
    </menuItem> 
    <menuItem label="About" menuItemId="3" > 
    </menuItem> 
</list>; 

var menuItemId4:XMLList = myList.menuItem.(@menuItemId==4); 
+0

Мне нужно выбрать узел в дереве, например: selectedIndex = 2; но я не знаю индекс, который мне нужно выбрать, по свойству «menuItemId». – user454530

 Смежные вопросы

  • Нет связанных вопросов^_^