Apache flex 无法使itemDoubleClick事件在Flex中工作(即使doubleClickEnabled=true)

Apache flex 无法使itemDoubleClick事件在Flex中工作(即使doubleClickEnabled=true),apache-flex,double-click,Apache Flex,Double Click,我正在尝试在Flex中使用双击事件创建一个简单的datagrid,但我无法启动itemDoubleClick: <mx:DataGrid id="gridReportConversions" height="100%" width="100%" mouseEnabled="true" doubleClickEnabled="true" itemDoubleClick="refererRowDoubleClicked(event)"> <m

我正在尝试在Flex中使用双击事件创建一个简单的datagrid,但我无法启动
itemDoubleClick

<mx:DataGrid id="gridReportConversions" height="100%" width="100%" mouseEnabled="true" doubleClickEnabled="true" itemDoubleClick="refererRowDoubleClicked(event)">
                    <mx:columns>
                        <mx:DataGridColumn width="75" dataField="qty" headerText="Qty" />
                        <mx:DataGridColumn dataField="referer" headerText="URL" />
                    </mx:columns>
                </mx:DataGrid>

如果我使用
itemClicked
事件,那么事件将正常引发。当我搜索这个问题时,我发现很多人说‘你需要设置
doubleClickEnabled=true
,但我已经这样做了,它仍然不起作用

此控件嵌套在相当多级别的VBox和其他容器中。当然,我不需要在每个容器上设置
doubleClickEnabled
,是吗

只是为了澄清我是如何测试这个的-我在我的
refererRowDoubleClicked
事件处理程序中有一个警报框,当我使用
itemDoubleClick
Simon时,它从未显示出来

我能让你的代码正常工作,没问题。将它包装在多层容器中,这些容器没有将doubleClickEnabled设置为true,以查看这是否是一个问题,但似乎不是

我想知道是不是父母中的一个造成了问题。您是否可以发布更大的代码部分

下面是我用来测试的:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.collections.ArrayCollection;

            [Bindable] private var dp:ArrayCollection = new ArrayCollection([{qty:1,referer:'http://google.com'},{qty:25,referer:'http://cnn.com'},{qty:4,referer:'http:stackoverflow.com'}]);



            private function refererRowDoubleClicked(e:Event):void
            {

                var msg:String = "target: " + e.target + "\n\ncurrentTarget: " + e.currentTarget + "\n\nselected item qty: " + gridReportConversions.selectedItem.qty + "\nselected item referer: " + gridReportConversions.selectedItem.referer;
                Alert.show(msg);
            }

        ]]>
    </mx:Script>


    <mx:VBox width="100%" height="100%">        
        <mx:VBox width="100%" height="100%">      
            <mx:Box width="100%" height="100%">
                  <mx:Canvas width="100%" height="100%">                    
                      <mx:DataGrid id="gridReportConversions" height="100%" width="100%" dataProvider="{this.dp}"
                        mouseEnabled="true" doubleClickEnabled="true" itemDoubleClick="refererRowDoubleClicked(event)">
                            <mx:columns>
                                    <mx:DataGridColumn width="75" dataField="qty" headerText="Qty" />
                                    <mx:DataGridColumn dataField="referer" headerText="URL" />
                            </mx:columns>
                      </mx:DataGrid>
                </mx:Canvas>
            </mx:Box>       
        </mx:VBox>
    </mx:VBox>

</mx:Application>


在我使用Property doubleClickEnabled之前,我的itemDoubleClick不工作,但是当我设置
doubleClickEnabled=true
时,它工作正常,没有问题。

请发布您的事件处理程序函数…我打赌它正在启动,但是处理程序函数中有一个错误,使它看起来好像没有启动。@mmattax-我的函数包含Alert.show(“达到的事件函数”),参数是event:event。如果我将itemDoubleClick更改为itemClick,那么我会看到一条消息,非常感谢您的尝试。我想我得一步一步地把它放到“集装箱链”上,看看能不能让它运转起来。我只是想确定一开始我没有做傻事