Pour autant que je sais qu'il n'y a rien intégré soit pour trier jours de la semaine ou obtenir un numéro de jour d'un jour de la semaine, donc vous devez construire à la fois. Vous n'avez pas besoin d'un itemRenderer personnalisé pour faire le tri cependant, juste une fonction de comparaison de type.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var days:ArrayCollection =
new ArrayCollection([{day: "Wednesday"},
{day: "Thursday"},
{day: "Monday"},
{day: "Tuesday"},
{day: "Sunday"},
{day: "Saturday"},
{day: "Friday"}
]);
private static var dayMap:Object = {
Sunday: 0,
Monday: 1,
Tuesday: 2,
Wednesday: 3,
Thursday: 4,
Friday: 5,
Saturday: 6};
private function daySorter(day1:Object, day2:Object):int {
var i1:int = dayMap[day1.day];
var i2:int = dayMap[day2.day];
return i1 < i2 ? -1 : i1 == i2 ? 0 : 1;
}
]]>
</mx:Script>
<mx:DataGrid dataProvider="{days}">
<mx:columns>
<mx:DataGridColumn dataField="day" sortCompareFunction="{daySorter}" />
</mx:columns>
</mx:DataGrid>
</mx:Application>