【发布时间】:2011-12-05 19:10:48
【问题描述】:
我正在尝试扩展 ButtonBarButton 以包含一个附加标签,该标签显示视图堆栈中各个框的更新次数(这是标签栏的 dataProvider)。
我可以获得附加标签(名为 indicatorLabel)以从数据中读取初始值,但我无法像实际的“标签”属性那样自动更新它。我的理解是您可以绑定到数据对象,但事实并非如此。
在视图堆栈中使用的框有一个名为 _indicator 的属性
[Bindable]
public var _indicator:String;
我知道它正在正确更新,因为我可以在框中看到它正在更新(它也绑定了一个标签)。它似乎只是不更新按钮栏按钮。
我的 buttonbarbutton 类具有以下内容(在 creationComplete 中调用了 init()
[SkinPart]
public var indicatorLabel:spark.components.Label;
private function init():void
{
indicatorLabel = data._indicator;
addEventListener("dataChange", onDataChangeHandler);
}
private function onDataChangeHandler(e:Event):void
{
trace(e.target.label + ' ' + e.target._indicator);
}
我猜我对数据绑定或传递给按钮的数据 obj 的假设是不正确的。任何帮助表示赞赏。
【问题讨论】:
-
看看我几天前回答的这个问题 (stackoverflow.com/questions/8353777/…)。它有点抽象,但它也应该回答你的问题。
-
RIAstar,太酷了。我对 commitProperties 了解不多。性能提升有多大?我确实发现了我的问题,e.target._indicator 应该是 e.target.data._indicator。
-
另外,如果您写了一个答案,我会将其标记为已回答 :-) 以便未来的读者可以直接看到答案。
标签: apache-flex data-binding button