如何绑定到 ArrayCollection 中的第一项?
我的应用程序使用 MVC 模型。该模型包含一个 Bindable 类 (BindableItemsClass),其中包含一个 ArrayCollection。我想将视图中的一些内容绑定到 Bindable 类的 ArrayCollection 中的第一项(因此属性“firstItem”)。
问题是,当使用 setter 'set firstItem(value:Object)' 时,绑定到该属性的视图组件不会更新。
有没有办法手动触发属性“firstItem”的绑定?
[Bindable]
public class BindableItemsClass extends EventDispatcher
{
private var _items:ArrayCollection;
public function get items():ArrayCollection
{
return _items;
}
public function set items(value:ArrayCollection):void
{
_items = value;
}
public function get firstItem():Object
{
if(_items && items.length>0)
return items[0];
else
return null;
}
public function set firstItem(value:Object):void
{
if(value)
items = new ArrayCollection([value]);
else
items = new ArrayCollection();
}
}
My application works with the MVC model. The model contains a Bindable class (BindableItemsClass) which contains an ArrayCollection. I want to bind some stuff in the view to the first item in the ArrayCollection of the Bindable class (hence the property 'firstItem').
The problem is that when the setter 'set firstItem(value:Object)' is used, the view components that are bound to that property aren't updated.
Is there a way to trigger the bindings of the property 'firstItem' manually?
[Bindable]
public class BindableItemsClass extends EventDispatcher
{
private var _items:ArrayCollection;
public function get items():ArrayCollection
{
return _items;
}
public function set items(value:ArrayCollection):void
{
_items = value;
}
public function get firstItem():Object
{
if(_items && items.length>0)
return items[0];
else
return null;
}
public function set firstItem(value:Object):void
{
if(value)
items = new ArrayCollection([value]);
else
items = new ArrayCollection();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
调度一个更改事件来触发 setter 中的绑定:
这应该有效。
如果没有,那么您可能还需要注释您的 getter:
这显式定义了函数的绑定侦听器,因此监视此侦听器的属性将了解要侦听的事件。
dispatch a change event to trigger the binding in the setter:
That SHOULD work.
if not, then you might also need to annotate your getters:
This explicitly defines a binding listener to the function so properties watching this will understand what event to listen for.