![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
Проблема следующая:
Имеется компонент, хранящий переменную "isLogin" и List компонент с custom itemRender. ........... [Bindable] public var isLogin:Boolean <mx:List id="actList" itemRenderer="ActListItemRender" dataProvider="{dataList}" /> ........... ............ <mx:Button x="111" y="31" width="16" height="16" styleName="playDemand" enabled="{(parent.parent.parent as ActList).isLogin}"/> ............ Замускаем -> переменная isLogin=false -> все отображается как надо -> мы логинемся -> переменная меняется isLogin=true -> а кнопка как была enabled = false так и осталось, меняется на true, только после того как мы проскролим лист.... Почему кнопка не становится enabled = true, сразу как мы меняем значение переменной "isLogin" на true, ведь переменная "isLogin" "забиндина"? |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 52
|
в таких случаях лучше инкапсулировать класс
- создать переменную внутри ItemRenderer, и назначать ее из List |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
Цитата:
Добавлено через 6 часов 25 минут Вобщем решил я эту задачу: пришлось вносить новый параметр в базу, которая указывается dataProvider'ом в List... Но, хотелось бы "услышать" другие варианты, решения этой задачи. |
|
|||||
|
Лучше напрямую Рендереру ничего не давать, а управлять через датаПровайдер. Но для решения вашей проблемы видно несколько способов (правда все почти корявые).
1) Пробежаться по даталисту и сменить свойство изЛогин у каждого объекта (не рендерера) 2) Сделать паблик статическую переменную в рендерере (фууу) 3) Сделать рендерер без кнопки(зачем она нам дисабленная во всех рендерерах - не красиво же) и менять его при смене изЛогин (хм) 4) Что нить более правильное. Добавлено через 2 минуты Вдогонку, вообще не люблю рендереры с кнопками. Лучше галочки! Тогда доступны массовые операции. Одну кнопку легче залочить. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
Цитата:
Цитата:
Цитата:
|
|
|||||
|
1) dataProvider="{dataList}"
dataList у вас кто? В принципе не важно, каждому объекту-элементу этого списка можно менять проперть (не на сервере), которая прибиндена к енаблю кнопки. 2) moiListItemRenderer.isLogin = true; В принципе я не рассмотрел еще вероятность того что, isLogin скорее всего переменная для всего приложения, которая показывает залогинен ли юзер в этом приложении, таким образом, проще всего ее сделать статично публичной. И еще как вариант можно попробовать при смене изЛогин проинвалидейтить лист, правда я не знаю можно ли. Тогда по идее ваш первоначальный код будет работать. Но мне самому все это не очень нравится, как я уже говорил. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
В принципе задача и была решена, способом номер 1, просто не сразу понял, что Вы имеете ввиду...
А вот пункт номер 2, я так и не понял. покажи примером) |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|