在 flex 3 中,我有一个分层数据结构。我想在树中显示它的内容。我的问题是我有从子节点计算数据的节点。如果子节点的数据发生更改,如何构建层次结构以自动更改这些父节点?例如:
- 每个节点都有一个警告标志。如果某些子警告标志更改为真,那么父警告标志应自动更改设置为真。
- 节点整数字段是子整数字段的总和,如果任何子整数字段发生变化,父整数字段会立即“计算”总和。
是否有一个简单的解决方案可以自动发生良好的结构更改,或者我必须制作一些自定义功能?
谢谢!
在 flex 3 中,我有一个分层数据结构。我想在树中显示它的内容。我的问题是我有从子节点计算数据的节点。如果子节点的数据发生更改,如何构建层次结构以自动更改这些父节点?例如:
是否有一个简单的解决方案可以自动发生良好的结构更改,或者我必须制作一些自定义功能?
谢谢!
我们通过遵循以下模式来做到这一点:
这应该会导致任何正在查看父级聚合属性的 UI 都会在子级更新时更新。
这是一个例子:
public class Parent
{
private var children:ArrayCollection = new ArrayCollection();
public function Parent()
{
children.addEventListener(
CollectionEvent.COLLECTION_CHANGE,
function(evt:CollectionEvent):void
{
if (...)
{
dispatchEvent(new Event("warningStateChanged"));
}
}
);
}
[Bindable("warningStateChanged")]
public function containsWarnings():Boolean
{
for each (var child:Child in children)
{
if (child.hasWarning)
{
return true;
}
}
return false;
}
}