你不需要一個自定義的ItemRenderer。只是這樣做:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
import spark.events.GridEvent;
private var lastColumnIndex:int = -1;
private var lastRowIndex:int = -1;
// set this to change the double click time
//mx_internal::event.grid.DOUBLE_CLICK_TIME = 480; // ms
protected function dataGrid_gridClickHandler(event:GridEvent):void
{
trace("click on this cell", event.rowIndex, event.columnIndex);
lastRowIndex = event.rowIndex;
lastColumnIndex = event.columnIndex;
}
protected function dataGrid_gridDoubleClickHandler(event:GridEvent):void
{
if (event.rowIndex == lastRowIndex && event.columnIndex == lastColumnIndex)
trace("a real double click on this cell", event.rowIndex, event.columnIndex);
else
trace("this is a gridClick on another cell", event.rowIndex, event.columnIndex);
lastRowIndex = event.rowIndex;
lastColumnIndex = event.columnIndex;
}
]]>
</fx:Script>
<s:DataGrid id="dataGrid" requestedRowCount="5" verticalCenter="0" horizontalCenter="0"
doubleClickEnabled="true"
gridClick="dataGrid_gridClickHandler(event)"
gridDoubleClick="dataGrid_gridDoubleClickHandler(event)">
<s:ArrayCollection>
<s:DataItem key="1000" name="Abrasive" price="100.11" call="false"/>
<s:DataItem key="1001" name="Brush" price="110.01" call="true"/>
<s:DataItem key="1002" name="Clamp" price="120.02" call="false"/>
<s:DataItem key="1003" name="Drill" price="130.03" call="true"/>
<s:DataItem key="1004" name="Epoxy" price="140.04" call="false"/>
<s:DataItem key="1005" name="File" price="150.05" call="true"/>
<s:DataItem key="1006" name="Gouge" price="160.06" call="false"/>
<s:DataItem key="1007" name="Hook" price="170.07" call="true"/>
<s:DataItem key="1008" name="Ink" price="180.08" call="false"/>
<s:DataItem key="1009" name="Jack" price="190.09" call="true"/>
</s:ArrayCollection>
</s:DataGrid>
</s:Application>
我也試了一下...... 但問題是,當你汽車無點擊DataGrid中的兩行,它也將其檢測爲雙擊,即使這兩個行是不同的.... 它檢測到整個網格上的雙擊... – 2012-03-07 10:44:16
是的,但只有當你點擊兩行時纔會發生,對嗎?您可能瘋狂地點擊以測試您的界面,但在現實生活中幾乎沒有發生過。如果你真的想要解決這個問題,你最好的選擇就是自定義的ItemRenderer。 – RIAstar 2012-03-07 10:57:29
終於我管理它與自定義Itemrenderer的幫助... – 2012-03-19 13:08:13