[ 
https://issues.apache.org/jira/browse/FLEX-34143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13934223#comment-13934223
 ] 

Alex Harui commented on FLEX-34143:
-----------------------------------

In the description it says he wants to see "exactly what event cause the 
change".  To me, that meant getting the actual change event, which could be 
"propertyChange", "valueCommit" or just about anything.

My point was that bindings may get evaluated even if none of these events fire.

> Give <fx:Binding /> an event handle.
> ------------------------------------
>
>                 Key: FLEX-34143
>                 URL: https://issues.apache.org/jira/browse/FLEX-34143
>             Project: Apache Flex
>          Issue Type: Improvement
>          Components: Data Binding
>            Reporter: Gary Yang
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> 1st of all, Flex Binding is great!!!
> I am using it this way:
> >>>>>>>>>>>>>>>>>code>>>>>>>>>>>>
>  <fx:Script><![CDATA[
>         [Bindable("dataChange")]
>         public function get rowData():VLogicTreeGridRow{
>             return data as VLogicTreeGridRow;
>         }
>         private var _cellData:VLogicTreeGridCell;
>         [Bindable(event="cellDataChanged")]
>         public function get cellData():VLogicTreeGridCell{
>             return _cellData;
>         }
>         private function set rfrCellData( v:* ):void{
>             if( rowData != null
>                     && logicTreeGrid.columns != null && 
> logicTreeGrid.columns.length > 0
>                     && rowData.cellList != null && rowData.cellList.length > 0
>                     ){
>                 var idx:int = logicTreeGrid.columns.getItemIndex( 
> treeGridColLogic );
>                 var rt:VLogicTreeGridCell = rowData.cellList.getItemAt( idx ) 
> as VLogicTreeGridCell;
>                 if( _cellData != rt ){
>                     _cellData = rt;
>                     dispatchEvent( new Event( "cellDataChanged" ) );
>                 }
>             }
>         }
>         ]]></fx:Script>
>     <ui:layout>
>         <s:HorizontalLayout paddingTop="2" paddingBottom="2" paddingLeft="2" 
> paddingRight="2"/>
>     </ui:layout>
>     <fx:Binding source="logicTreeGrid.columns.length" 
> destination="rfrCellData"/>
>     <fx:Binding source="rowData.cellList.length" destination="rfrCellData"/>
> <<<<<<<<<<<<<<<code<<<<<<<<<<<<
> Because the destination of Binding tag can only be setters, I have to use it 
> this way if I want to handle changes from the Binding sources,  do you think 
> it's possible to add a handle for Binding tag so that I can see exactly what 
> event caused the change please?
> So that it can be like this
> >>>>>>>>>>>>>>>>>code>>>>>>>>>>>>
>         private function refreshCellData( ev:Event ):void{
>             if( ev is CollectionEvent ){
>                 
>             }
>             else if( ev is PropertyChangeEvent ){
>                 
>             }
>             if( rowData != null
>                     && logicTreeGrid.columns != null && 
> logicTreeGrid.columns.length > 0
>                     && rowData.cellList != null && rowData.cellList.length > 0
>                     ){
>                 var idx:int = logicTreeGrid.columns.getItemIndex( 
> treeGridColLogic );
>                 var rt:VLogicTreeGridCell = rowData.cellList.getItemAt( idx ) 
> as VLogicTreeGridCell;
>                 if( _cellData != rt ){
>                     _cellData = rt;
>                     dispatchEvent( new Event( "cellDataChanged" ) );
>                 }
>             }
>         }
>         ]]></fx:Script>
>     <ui:layout>
>         <s:HorizontalLayout paddingTop="2" paddingBottom="2" paddingLeft="2" 
> paddingRight="2"/>
>     </ui:layout>
>     <fx:Binding source="logicTreeGrid.columns.length" 
> changeHandle="refreshCellData"/>
>     <fx:Binding source="rowData.cellList.length" 
> changeHandle="refreshCellData"/>
> <<<<<<<<<<<<<<<code<<<<<<<<<<<<
> This is going to be very useful!!!



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to