Я расширил DataGridColumn, потому что хотел включить пользовательскую функцию itemToLabel (чтобы можно было показывать вложенные данные в DataGrid. См. этот вопрос.
В любом случае, для этого также требуется настраиваемая функция сортировки. Итак, я написал функцию сортировки следующим образом:
private function mySortCompareFunction(obj1:Object, obj2:Object):int{
var currentData1:Object = obj1;
var currentData2:Object = obj2;
//some logic here to get the currentData if the object is nested.
if(currentData1 is int && currentData2 is int){
var int1:int = int(currentData1);
var int2:int = int(currentData2);
var result:int = (int1>int2)?-1:1;
return result;
}
//so on for string and date
}
И в конструкторе моего CustomDataGridColumn я поместил:
супер (ColumnName);
sortCompareFunction = mySortCompareFunction;
Всякий раз, когда я пытаюсь отсортировать столбец, я получаю сообщение об ошибке "Error: Find criteria must contain at least one sort field value.
"
Когда я отлаживаю и выполняю каждый шаг, я вижу, что первые несколько раз функция вызывается правильно, но ближе к концу эта ошибка возникает.
Может кто-нибудь пролить свет на то, что здесь происходит?
Спасибо.