Apache flex 如何访问(引用)TileList中的自定义itemRenderer?

Apache flex 如何访问(引用)TileList中的自定义itemRenderer?,apache-flex,Apache Flex,我有一个10个项目的TileList cp。 如何调用4中的函数。例如,从外部创建TileList cp的项目 谢谢更新: 根据你的评论,这应该更容易。您只需遍历列表的数据提供程序中的每一行,并进行必要的更改。在函数末尾,只需调用ArrayCollection上的refresh函数。使用下面的示例: public function myFunction(evt:Event):void { for each (var o:MyObject in myDataProvider) {

我有一个10个项目的TileList cp。 如何调用4中的函数。例如,从外部创建TileList cp的项目

谢谢更新:

根据你的评论,这应该更容易。您只需遍历列表的数据提供程序中的每一行,并进行必要的更改。在函数末尾,只需调用ArrayCollection上的refresh函数。使用下面的示例:

public function myFunction(evt:Event):void
{
  for each (var o:MyObject in myDataProvider)
  {
    o.someProperty = "Updated";
  }

  myArrayCollection.refresh();
}
更新ArrayCollection后,调用refresh函数应使列表也刷新其项目呈现器

原始答复:

当在ItemRenderer中单击按钮或某物时,听起来您希望调用ItemRenderer外部的函数,但仍然能够访问所单击项目的数据

假设我没有弄错,您仍然不需要访问ItemRenderer本身。你可以这样做只是一个粗略的例子:

<fx:Script>
  <![CDATA[

  public function myFunction(evt:Event):void
  {
    trace(MyObject(myList.selectedItem).someProperty.toString());
  }

  ]]>
</fx:Script>

<mx:List id="myList" dataProvider="{myDataProvider}" >
  <mx:itemRenderer>
    <fx:Component>
      <mx:CheckBox selectedField="IsSelected" change="outerDocument.myFunction(event);" />
    </fx:Component>
  </mx:itemRenderer>
</mx:List>
更新:

根据你的评论,这应该更容易。您只需遍历列表的数据提供程序中的每一行,并进行必要的更改。在函数末尾,只需调用ArrayCollection上的refresh函数。使用下面的示例:

public function myFunction(evt:Event):void
{
  for each (var o:MyObject in myDataProvider)
  {
    o.someProperty = "Updated";
  }

  myArrayCollection.refresh();
}
更新ArrayCollection后,调用refresh函数应使列表也刷新其项目呈现器

原始答复:

当在ItemRenderer中单击按钮或某物时,听起来您希望调用ItemRenderer外部的函数,但仍然能够访问所单击项目的数据

假设我没有弄错,您仍然不需要访问ItemRenderer本身。你可以这样做只是一个粗略的例子:

<fx:Script>
  <![CDATA[

  public function myFunction(evt:Event):void
  {
    trace(MyObject(myList.selectedItem).someProperty.toString());
  }

  ]]>
</fx:Script>

<mx:List id="myList" dataProvider="{myDataProvider}" >
  <mx:itemRenderer>
    <fx:Component>
      <mx:CheckBox selectedField="IsSelected" change="outerDocument.myFunction(event);" />
    </fx:Component>
  </mx:itemRenderer>
</mx:List>

通常,您不会访问列表中的特定itemRenderer。您将访问dataProvider中itemRenderer后面的数据。你到底想做什么?我必须在TileList中的所有项中调用函数。你必须在TileList或渲染器中的项上调用函数?如果必须对项目调用函数;您需要访问数据提供者;不是实际的渲染器。有一个TileList,带有itemRenderer。dataProvider有10个节点,因此在运行应用程序时生成10个项。我必须从外部调用一个函数,这些项都有什么。通常,您不会访问列表中的特定itemRenderer。您将访问dataProvider中itemRenderer后面的数据。你到底想做什么?我必须在TileList中的所有项中调用函数。你必须在TileList或渲染器中的项上调用函数?如果必须对项目调用函数;您需要访问数据提供者;不是实际的渲染器。有一个TileList,带有itemRenderer。dataProvider有10个节点,因此在运行应用程序时生成10个项。我必须从外部调用函数,这些项都有。不完全是这样。举个例子:我想在所有项中调用函数,而不仅仅是在所选项中。因此,itemRenderer中有一个函数,调用:changeSomething。此函数用于更改项目中的某些内容。。所以,我想更改所有项目中的某些内容,而不仅仅是选定的项目。我需要这样的东西:MyObjectmyList.allItem.someProperty.toString@我根据你的评论更新了我的答案。如果您还有其他问题,请告诉我。我有Tilelistid:myTileList,ItemRenderId:MyItemRenderId,dataProviderid:myDataProvider:XMLList,您可以为我的名字编写特定的代码吗,因为我不完全理解..谢谢!不完全是。举个例子:我想在所有项目中调用函数,而不仅仅是在所选项目中。因此,itemRenderer中有一个函数,调用:changeSomething。此函数用于更改项目中的某些内容。。所以,我想更改所有项目中的某些内容,而不仅仅是选定的项目。我需要这样的东西:MyObjectmyList.allItem.someProperty.toString@我根据你的评论更新了我的答案。如果您还有其他问题,请告诉我。我有Tilelistid:myTileList,ItemRenderId:MyItemRenderId,dataProviderid:myDataProvider:XMLList,您可以为我的名字编写特定的代码吗,因为我不完全理解..谢谢!