[flexcoders] Re: Can I force a redraw of my dataGrid?
Derrick, Thanks again, and once again, you have led me to another question. I'm aware of using the bindable metatag, and also am using the binding.utils.bindProperty method to handle some other bindings I need manually, but I'm now wondering if i can do the following: Can I create an Object, and as I create properties on that Object, tell the property to be bindable, in ActionScript. I'm assuming the metatag tells the compiler to create the necessary watchers, but it would be really nice if that were a property I could set while I'm dynamically creating properties of an Object...something like: var myObj:Object = new Object(); myObj.publisher = ''; myObj.publisher.bindable=true; Using the binding.utils.bindProperty method works great when I know exactly the two locations between which I want to share data, but it isn't as nice as creating a typed class within an ArrayCollection as bindable that you can easily fit into (and broadcast changes to) a datagrid. A typed value object is basically an object that matches to some data entity you are working with. You create a class to define the entity, give it properites (that are bindable) and then put instances of that class into the ArrayCollection instead of non descript Objects ie class BookVO { [Bindable] public var title: String; [Bindable] public var author: String; [Bindable] public var ISBN: String; public function BookVO():void { } } ... and then loop through the results from the webservice and for each item, create a new BookVO, fill in the properties and add that to the ArrayCollection. I imagine you are probably currently doing something similiar to var book = new Object(); book.author = xmlNode.ItemAttributes.author; book.title = xmlNode.ItemAttributes.title; book.ISBN = xmlNode.ItemAttributes.ISBN; This is certainly very easy to start with, but in the long run causes more headaches for a variety of reasons. By using typed objects with bindable properties, it leverages the Flex components awareness of changes in those objects, basically the components listen to the objects for changes, which means you don't have to manually refresh things when changes happen. Derrick Grigg - www.dgrigg.com --- In flexcoders@yahoogroups.com, livinginswitzerland rickgeorge@ wrote: Thanks Derrick... I had tried invalidateDisplay list, but not invalidateList..which did it. interesting. when you say typed value objects...can you elaborate on that? I am doing some 'non standard' things, and all of my data is read into an ArrayCollection via a web service, but i'm not using XML but text instead. Curious if what you are saying regarding typed value objects is something i'm bumping up against. thanks again! -rick --- In flexcoders@yahoogroups.com, Derrick Grigg dgrigg@ wrote: I think you can use the 'invalidateDisplayList()' or possibly the 'invalidateList()' to refresh your datagrid. Alternatively, if you use typed value objects in the dataProvider any changes to those, should automatically be reflected (and viewed) in the DataGrid if you are using databinding. Derrick Grigg www.dgrigg.com -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * To unsubscribe from this group, send an email to: [EMAIL PROTECTED] * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
[flexcoders] Re: Can I force a redraw of my dataGrid?
I don't think you can add metadata like the bindable property at runtime, it has to be declared/defined in a class. Using the binding utils is a way to compensate for not having declared bindable properties. Personally I prefer to use VO's and bindable properties, overall a much cleaner solution than generic objects and the binding utils. Derrick Grigg - www.dgrigg.com --- In flexcoders@yahoogroups.com, livinginswitzerland [EMAIL PROTECTED] wrote: Derrick, Thanks again, and once again, you have led me to another question. I'm aware of using the bindable metatag, and also am using the binding.utils.bindProperty method to handle some other bindings I need manually, but I'm now wondering if i can do the following: Can I create an Object, and as I create properties on that Object, tell the property to be bindable, in ActionScript. I'm assuming the metatag tells the compiler to create the necessary watchers, but it would be really nice if that were a property I could set while I'm dynamically creating properties of an Object...something like: var myObj:Object = new Object(); myObj.publisher = ''; myObj.publisher.bindable=true; Using the binding.utils.bindProperty method works great when I know exactly the two locations between which I want to share data, but it isn't as nice as creating a typed class within an ArrayCollection as bindable that you can easily fit into (and broadcast changes to) a datagrid. A typed value object is basically an object that matches to some data entity you are working with. You create a class to define the entity, give it properites (that are bindable) and then put instances of that class into the ArrayCollection instead of non descript Objects ie class BookVO { [Bindable] public var title: String; [Bindable] public var author: String; [Bindable] public var ISBN: String; public function BookVO():void { } } ... and then loop through the results from the webservice and for each item, create a new BookVO, fill in the properties and add that to the ArrayCollection. I imagine you are probably currently doing something similiar to var book = new Object(); book.author = xmlNode.ItemAttributes.author; book.title = xmlNode.ItemAttributes.title; book.ISBN = xmlNode.ItemAttributes.ISBN; This is certainly very easy to start with, but in the long run causes more headaches for a variety of reasons. By using typed objects with bindable properties, it leverages the Flex components awareness of changes in those objects, basically the components listen to the objects for changes, which means you don't have to manually refresh things when changes happen. Derrick Grigg - www.dgrigg.com --- In flexcoders@yahoogroups.com, livinginswitzerland rickgeorge@ wrote: Thanks Derrick... I had tried invalidateDisplay list, but not invalidateList..which did it. interesting. when you say typed value objects...can you elaborate on that? I am doing some 'non standard' things, and all of my data is read into an ArrayCollection via a web service, but i'm not using XML but text instead. Curious if what you are saying regarding typed value objects is something i'm bumping up against. thanks again! -rick --- In flexcoders@yahoogroups.com, Derrick Grigg dgrigg@ wrote: I think you can use the 'invalidateDisplayList()' or possibly the 'invalidateList()' to refresh your datagrid. Alternatively, if you use typed value objects in the dataProvider any changes to those, should automatically be reflected (and viewed) in the DataGrid if you are using databinding. Derrick Grigg www.dgrigg.com -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * To unsubscribe from this group, send an email to: [EMAIL PROTECTED] * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
[flexcoders] Re: Can I force a redraw of my dataGrid?
A typed value object is basically an object that matches to some data entity you are working with. You create a class to define the entity, give it properites (that are bindable) and then put instances of that class into the ArrayCollection instead of non descript Objects ie class BookVO { [Bindable] public var title: String; [Bindable] public var author: String; [Bindable] public var ISBN: String; public function BookVO():void { } } ... and then loop through the results from the webservice and for each item, create a new BookVO, fill in the properties and add that to the ArrayCollection. I imagine you are probably currently doing something similiar to var book = new Object(); book.author = xmlNode.ItemAttributes.author; book.title = xmlNode.ItemAttributes.title; book.ISBN = xmlNode.ItemAttributes.ISBN; This is certainly very easy to start with, but in the long run causes more headaches for a variety of reasons. By using typed objects with bindable properties, it leverages the Flex components awareness of changes in those objects, basically the components listen to the objects for changes, which means you don't have to manually refresh things when changes happen. Derrick Grigg - www.dgrigg.com --- In flexcoders@yahoogroups.com, livinginswitzerland [EMAIL PROTECTED] wrote: Thanks Derrick... I had tried invalidateDisplay list, but not invalidateList..which did it. interesting. when you say typed value objects...can you elaborate on that? I am doing some 'non standard' things, and all of my data is read into an ArrayCollection via a web service, but i'm not using XML but text instead. Curious if what you are saying regarding typed value objects is something i'm bumping up against. thanks again! -rick --- In flexcoders@yahoogroups.com, Derrick Grigg dgrigg@ wrote: I think you can use the 'invalidateDisplayList()' or possibly the 'invalidateList()' to refresh your datagrid. Alternatively, if you use typed value objects in the dataProvider any changes to those, should automatically be reflected (and viewed) in the DataGrid if you are using databinding. Derrick Grigg www.dgrigg.com -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * To unsubscribe from this group, send an email to: [EMAIL PROTECTED] * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
[flexcoders] Re: Can I force a redraw of my dataGrid?
I think you can use the 'invalidateDisplayList()' or possibly the 'invalidateList()' to refresh your datagrid. Alternatively, if you use typed value objects in the dataProvider any changes to those, should automatically be reflected (and viewed) in the DataGrid if you are using databinding. Derrick Grigg www.dgrigg.com -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * To unsubscribe from this group, send an email to: [EMAIL PROTECTED] * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
[flexcoders] Re: Can I force a redraw of my dataGrid?
Thanks Derrick... I had tried invalidateDisplay list, but not invalidateList..which did it. interesting. when you say typed value objects...can you elaborate on that? I am doing some 'non standard' things, and all of my data is read into an ArrayCollection via a web service, but i'm not using XML but text instead. Curious if what you are saying regarding typed value objects is something i'm bumping up against. thanks again! -rick --- In flexcoders@yahoogroups.com, Derrick Grigg [EMAIL PROTECTED] wrote: I think you can use the 'invalidateDisplayList()' or possibly the 'invalidateList()' to refresh your datagrid. Alternatively, if you use typed value objects in the dataProvider any changes to those, should automatically be reflected (and viewed) in the DataGrid if you are using databinding. Derrick Grigg www.dgrigg.com -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) * To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * To unsubscribe from this group, send an email to: [EMAIL PROTECTED] * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/