I do it because if I don't, my boss yells at me. Something about "encapsulation" and "View's shouldn't know about ModelLocator... they are too tightly coupled that way." This allows a master View to act as an intermediary controller of sorts, and dictate what view knows about what. Since our applications are friggin' huge, this allows us to easily share View's throughout. If we shoved ModelLocator in 'em, they wouldn't be portable.
This worked great in Flex 1.5, so you really should not worry about performance in Flex 2... they've optimized this stuff for us so all the uber-OOP programmer guys don't shoot themselves in the foot performance wise. ----- Original Message ----- From: "Tim Hoff" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Monday, July 10, 2006 11:53 AM Subject: [flexcoders] Re: Accessing a datagrid inside a different viewstate Hi Jesse, I started using this approach because it was used in the samples. When I sought to increase the performace of the application, I noticed a little gain when I bound the source directly to the DataProvider. By creating an additional [Bindable] ArrayCollection and an additonal reference in the outer description of the component, it adds to the resources used and instructions. Do you think that it makes sense to use the direct binding approach instead? Tim --- In [email protected], "JesterXL" <[EMAIL PROTECTED]> wrote: > > If the View's, and all parents have a creationPolicy (in the case of Containers) to "all", then it will be created. However, you cannot depend on creation order 100%; you'll end up with a race condition somehwere, and pull you're hair out. You're best approach is to utilize a ModelLocator approach where you're sub-view, the datagrid, is bound to data inside the view. This data is exposed as a public property that has the bindable tag (can be a getter /setter [mutator] also). That way, as soon as the view is created, it has the data it needs. > > -- pseduo code -- > > // ModelLocator class > > [Bindable] > public var my_array:ArrayCollection; > > // main view > > import ModelLocator; > > <view:MyView someData="{ModelLocator.getInstance().my_array}" /> > > // sub view > > public var someData:ArrayCollection; > > <mx:DataGrid dataProvider="{someData}" /> > > Make sense? > > > ----- Original Message ----- > From: Joe Stramel > To: [email protected] > Sent: Monday, July 10, 2006 10:59 AM > Subject: [flexcoders] Accessing a datagrid inside a different viewstate > > > I have a custom component that I created and I have added it to the main application. There is a datagrid inside the custom component. I call the data in the main app, place it in a public ArrayCollection and want the datagrid to display the data. My problem is that the datagrid is in a different viewstate other than the default view and so I get a null reference error when I try to populate the datagrid from the main app. Is there a way to force the component to create itself with the main app even though it is in a different viewstate? Thank you > -- 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 ------------------------ Yahoo! Groups Sponsor --------------------~--> Something is new at Yahoo! Groups. Check out the enhanced email design. http://us.click.yahoo.com/SISQkA/gOaOAA/yQLSAA/nhFolB/TM --------------------------------------------------------------------~-> -- 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/ <*> 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/

