It¹s difficult to determine what your problem is without knowing a little more about what your DetailPopUp does/is. If you post some code it would be far easier to determine why one context works and another doesn¹t. Generally... I wouldn¹t recommend mingling non-visual and visual components in mxml.
Your error basically says that your non-visual component doesn¹t have an appropriate interface for the context you are placing it in. e.g. It should be a IUIComponent. http://livedocs.adobe.com/flex/201/langref/mx/core/IUIComponent.html Rick Winscot On 12/12/08 12:49 PM, "Michael Prescott" <[email protected]> wrote: > > > > Short version: > > I have a non-visual component that I'm trying to declare in a repeater, but it > seems that MXML doesn't allow this. Is this true? How do you get around > this, create a visual component to wrap the non-visual component? > > Long version: > > I have an ActionScript non-visual component whose declaration looks like this: > > public class DetailPopup extends EventDispatcher implements IMXMLObject > > I've used this successfully inside an inline, MXML item renderer, like this: > > <mx:DataGridColumn> > <mx:itemRenderer> > <mx:Component> > <mx:VBox> > > <!-- a bunch of other stuff, and then my: --> > > <my:DetailPopUp/> > > <mx:VBox> > </mx:Component> > </mx:itemRenderer> > </mx:DataGridColumn> > > > Now that I'm switching from a DataGrid to a Grid, the code ought to look like > this: > > <mx:GridItem> > <mx:VBox> > > <!-- a bunch of other stuff, and then my: --> > > (X) <my:DetailPopUp/> > > <mx:VBox> > </mx:GridItem> > > ..except that I'm getting an error, "Component declarations are not allowed > here. (Note: visual children must implement IUIComponent.)" > > After trying out a bunch of scenarios, it looks like non-visual components can > only be declared in the outermost scope of a component or application. Is > this true? This is rather awkward, as I need a DetailPopUp for each griditem. > > Any tips would be very helpful! > > Michael > >

