[英]Triggering a change event in a Flex tree control programmatically
我有一种方法可以将XML节点结构添加到当前选择的树节点。
这将附加xml,并打开父节点以显示新添加的节点。
然后,通过设置树的selectedItem选择节点。
我有一个编辑表单,可以在树更改事件中更新其值。 当我在此方法中设置selectedItem时,将正确选择该节点,但不会触发change事件(因此编辑器不会更新)。 我试图在稍后的调用块中调用它无济于事。
有没有一种方法可以强制树在此时分派更改事件?
public function addSelected(node:XML):void{
tree_expandItem(false);
var selectedItem:XML = tree.selectedItem as XML;
selectedItem.appendChild(node);
tree_expandItem(true);
callLater(function():void { tree.selectedItem = node; } );
}
用一般的方式来扩展这个问题-我本以为更改树的selectedItem会导致更改事件? 还是仅当用户进行更改时才将其视为更改?
您可以将更改事件处理程序中当前存在的逻辑移至单独的函数,然后直接调用该函数:
private function changeHandler(event:ListEvent):void
{
doChangeLogic();
}
private function doChangeLogic():void
{
//statements
}
public function addSelected(node:XML):void
{
tree_expandItem(false);
var selectedItem:XML = tree.selectedItem as XML;
selectedItem.appendChild(node);
tree_expandItem(true);
callLater(function():void { tree.selectedItem = node; } );
doChangeLogic();
}
有没有一种方法可以强制树在此时分派更改事件?
使用dispatchEvent()方法。 谢谢詹姆斯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.