Flex AdvancedDataGrid выделение нескольких ячеек не полностью очищается

У меня две проблемы, вторая из которых является проблемой только потому, что это возможный способ исправить первую!

Я разрабатываю приложение Flex 4.1, используя тему Spark: я не могу их изменить; Ореол - не вариант.

Он предоставляет возможность заполнять несколько выбранных ячеек AdvancedDataGrid одним символом одним нажатием клавиши. Таким образом, пользователь выбирает свои ячейки с помощью клавиши Shift, нажимает H (например) и видит, что все ячейки обновляются с помощью H, без использования itemEditor, а вместо этого через события сетки keyDown. Затем они щелкают в другом месте, и выделение должно очищаться.

Однако видимое выделение не очищается полностью, и новые окрашенные ячейки не изменят свой выбранный цвет.

Внизу я могу убедиться, что выделение снято: mygrid.selectedCells пуст. Все последующее поведение указывает на какой-то сбой отображения с сеткой: ячейки больше не выбираются, но выглядят так, как есть.

После нажатия клавиши над выделенными ячейками:

alt text

После щелчка мышью, чтобы очистить выбор:

alt text

Обратите внимание на чередование столбцов: так бывает всегда.

Это использует itemRenderer по умолчанию. Это все еще происходит с очень простым настраиваемым элементом itemRenderer, но я не смотрел дальше по этому пути, потому что есть сложность, заключающаяся в том, что я не могу получить метку в itemRenderer для распознавания backgroundAlpha, поэтому «выбранный» фон едва виден и выглядит ужасно. Я где-то читал, что это проблема Spark, и это, безусловно, правда, что если я вернусь к рендереру по умолчанию, все будет в порядке. Ну ... кроме этого глюка выбора цвета.

Вот как это выглядит с настраиваемым рендерером:

alt text

Если мне не хватает чего-то очевидного, вот itemRenderer, который я пробовал:

<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                          xmlns:s="library://ns.adobe.com/flex/spark" 
                          xmlns:mx="library://ns.adobe.com/flex/mx" 
                          focusEnabled="true" autoDrawBackground="true"
                          >
    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>
    <s:Label id="lblData" text="{listData.label}" backgroundAlpha="0"/>
</s:MXAdvancedDataGridItemRenderer>

Итак, вкратце: мне нужен способ исправить ошибку множественного выбора; проблема с рендерером элементов возникает только в том случае, если мне нужен настраиваемый itemRenderer для исправления сбоя выбора.

Любая помощь с благодарностью получена.


person tridian    schedule 23.09.2010    source источник


Ответы (1)


Похоже, это вызвано Flashplayer 10.1. Вы можете найти подробности здесь:

Ошибка выбора ADG

В комментариях также есть обходной путь.

person KevK    schedule 13.12.2010
comment
Фантастика. Этот проект ненадолго был приостановлен, поэтому я попробую на следующей неделе. - person tridian; 14.12.2010