Перетащите значок вопроса - PullRequest
1 голос
/ 07 марта 2011

Я перетаскиваю элемент из сетки данных, и при перетаскивании я мог видеть все столбцы в выбранной записи при перетаскивании. Однако я хочу показать только один столбец (может быть, имя или идентификатор записи)? Есть ли способ добиться этого? Кроме того, можно ли при перетаскивании показывать значок или изображение вместо записи.

Спасибо, ребята.

1 Ответ

1 голос
/ 07 марта 2011

Это можно сделать, расширив DataGrid для предоставления свойства DataGridDragProxy. Проверьте http://dgrigg.com/blog/2006/11/03/datagrid-drag-image/ для рабочего примера .

Расширенная сетка данных:

<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
        import mx.controls.dataGridClasses.DataGridDragProxy;
        import mx.core.IUIComponent;

        /**
        * @public
        * class to use as DragProxy image
        * set the default value to the standard DataGridDragProxy class
        */
        [Bindable]
        public var dragProxyImage: Class = DataGridDragProxy; 

        override protected function get dragImage():IUIComponent
        {
            var image:IUIComponent = new dragProxyImage();
            image.owner = this;
            return image;
        }
        ]]>
    </mx:Script>
</mx:DataGrid>

Использование DataGrid:

<controls:DataGrid 
    dataProvider="{dataSource}" 
    rowHeight="40" 
    dragEnabled="true" 
    height="140" 
    dragProxyImage="com.dgrigg.controls.CustomDragProxy" 
    allowMultipleSelection="true">

    <controls:columns>
        <mx:DataGridColumn headerText="Image" dataField="image">
            <mx:itemRenderer>
                <mx:Component>
                    <mx:Image source="{data.image}"/>
                </mx:Component>
            </mx:itemRenderer>
        </mx:DataGridColumn>
        <mx:DataGridColumn headerText="Product" dataField="name"/>
        <mx:DataGridColumn headerText="Description" dataField="description"/>
    </controls:columns>
</controls:DataGrid>
...