Not sure I understand, but if you are changing fields in the items in a
data provider, you may need to dispatch a change event when done.  The
collections currently don't watch the items.  That is a to-do item.  If
you want to try to create a version of Collections that does that, it
would be great.

-Alex

On 3/10/16, 3:23 AM, "santanu4ver" <[email protected]> wrote:

>Hi,
>
>I couldn't able to make this binding works in a component page (I followed
>demo projects supplied within FlexJS SDK) when output as HTML.
>
>My InitialView.mxml uses <states> and I'm trying to inject a ValueObject
>inside component in another state upon selecting a DataGrid item:
>
>/<js:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009";
>                        xmlns:js="library://ns.apache.org/flexjs/basic"
>                        width="100%" height="100%" 
> initComplete="onCreationCompletes(event)"
>xmlns:local="*">
>       <fx:Script>
>               
>       </fx:Script>
>       <js:states>
>               <js:State name="LoginState" />
>               <js:State name="DataState"/>
>               <js:State name="DetailsState"/>
>       </js:states>
>       
>       <js:Container id="cData"
>                       includeIn="DataState" width="100%" height="100%">
>               <js:beads>
>                       <js:VerticalLayout />
>               </js:beads>
>               <js:DataGrid id="dataGrid" width="100%" height="100%"
>className="MyDataGrid" rowHeight="60"
>                                                
> change="onDataGridChangedEvent(event)">
>                       <js:beads>
>                               <js:DataProviderChangeNotifier 
> sourceID="applicationModel"
>propertyName="dataList" />
>                               <js:ConstantBinding
>                                               sourceID="applicationModel"
>                                               sourcePropertyName="dataList"
>                                               
> destinationPropertyName="dataProvider" />
>                       </js:beads>
>                       <js:columns>
>                               <js:DataGridColumn label="Partition Name" 
> dataField="PartitionName" />
>                               <js:DataGridColumn label="Action Description"
>dataField="ActionDescription"/>
>                               <js:DataGridColumn label="Action State" 
> dataField="ActionState" />
>                               <js:DataGridColumn label="Action Start Time"
>dataField="ActionStartTime"/>
>                       </js:columns>
>               </js:DataGrid>
>       </js:Container> 
>               
>       <local:AgentChainDetails id="agentDetails"
>                       includeIn="DetailsState" width="100%" height="100%"/>
></js:ViewBase>/
>
>
>Above, /onDataGridChangedEvent()/ injects the ValueObjects to
>AgentChainDetails component after changing application state.
>
>Following is my <fx:Script> section in AgentChainDetails:
>
>/private var _selectedAgent:AgentChain;
>                       
>[Bindable("selectedAgentChanged")]
>public function get selectedAgent():AgentChain
>{
>       return _selectedAgent;
>}
>public function set selectedAgent(value:AgentChain):void
>{
>       if (value != _selectedAgent)
>       {
>               _selectedAgent = value;
>               dispatchEvent(new Event("selectedAgentChanged"));
>       }
>}/
>
>While run as HTML, I manually edited 'js-debug/AgentChainDetails.as' and
>added HTML alert in SET selectedAgent method, and I confirm SET
>selectedAgent is calling by adding HTML alert with dummy texts. But the
>alert never fires if I try something ValueObject.field - it looks like
>'value:AgentChain' is coming empty
>
>/Object.defineProperties(AgentChainDetails.prototype, /** @lends
>{AgentChainDetails.prototype} */ {
>/** @export */
>selectedAgent: {
>get: /** @this {AgentChainDetails} */ function() {
>  return this._selectedAgent;
>},
>set: /** @this {AgentChainDetails} */ function(value) {
>alert(value.ActionID); // ActionID is String field
>  if (value != this._selectedAgent) {
>    this._selectedAgent = value;
>    this.dispatchEvent(new
>org.apache.flex.events.Event("selectedAgentChanged"));
>  }
>}}}
>);/
>
>What I'm missing? Please help.
>
>
>
>--
>View this message in context:
>http://apache-flex-users.2333346.n4.nabble.com/Binding-not-works-expectedl
>y-tp12171.html
>Sent from the Apache Flex Users mailing list archive at Nabble.com.

Reply via email to