Я работаю над проблемой с ближайшей недели, но все еще не могу заставить ее работать, как ожидалось. У меня есть DataGrid, который имеет HBox с CheckBox и Label в качестве itemRenderer (см. Код ниже). Когда я подключаюсь к ячейке, появляется стандартный itemEditor, позволяющий ввести содержимое метки. Это стандартное поведение. У меня нормально работает кроме 2х проблем:
Если я введу много текста, появится горизонтальная полоса прокрутки, и ячейка заполнится этой полосой прокрутки. Как вы видите, я попытался отключить HorizontalScrollPolicy, но это не работает вообще ... Я пытался сделать это для всех различных элементов, но ошибка все еще существует.
Когда я заполнил более одной строки, происходит другая ошибка. Если я коснусь строки, сетка данных выберет ту, которая находится под этой строкой. Это только если одна строка уже выбрана. Если я коснусь за пределами сетки данных, а затем коснусь в любой строке, покажется itemEditor из правой строки ... Есть ли что-нибудь правильное в настройке моего метода данных?
__
package components
{
import mx.containers.HBox;
import mx.controls.CheckBox;
import mx.controls.Label;
public class ChoiceRenderer extends HBox
{
private var correctAnswer:CheckBox;
private var choiceLabel:Label;
public function ChoiceRenderer()
{
super();
paint();
}
private function paint():void{
percentHeight = 100;
percentWidth = 100;
setStyle("horizontalScrollPolicy", "off");
super.setStyle("horizontalScrollPolicy", "off");
correctAnswer = new CheckBox;
correctAnswer.setStyle("horizontalScrollPolicy", "off");
addChild(correctAnswer);
choiceLabel = new Label;
choiceLabel.setStyle("horizontalScrollPolicy", "off");
addChild(choiceLabel);
}
override public function set data(xmldata:Object):void{
if(xmldata.name() == "BackSide"){
var xmlText:Object = xmldata.TextElements.TextElement.(@position == position)[0];
super.data = xmlText;
choiceLabel.text = xmlText.toString();
correctAnswer.selected = xmlText.@correct_answer;
}
}
}
Заранее спасибо!
Markus