У меня есть такой класс. Свойство «isPag» основано на поле «ecboardid», я обнаружил, что при изменении ecboardid элементы управления пользовательского интерфейса, похоже, не могут обнаружить, что «isPag» также изменяется. Итак, как сделать такое свойство привязываемым?
[Bindable]
public class Encoder extends EventDispatcher
{
public var ecboardid : String;
/*-.........................................Methods..........................................*/
public function copyFrom(newEncoder:Encoder):void
{
ecboardid = newEncoder.ecboardid;
this.dispatchEvent(new Event('isPagChanged'));
}
[Bindable (event="isPagChanged")]
public function get isPag():Boolean
{
if(this.ecboardid != null)
{
if(this.ecboardid.search('xxx') != -1)
{
return false;
}
return true;
}
else
{
return false;
}
}
}
Edit:
Если я изменю свойство на статическую функцию,
[Bindable]
public class Encoder extends EventDispatcher
{
public var ecboardid : String;
/*-.........................................Methods..........................................*/
public function copyFrom(newEncoder:Encoder):void
{
ecboardid = newEncoder.ecboardid;
this.dispatchEvent(new Event('isPagChanged'));
}
public static function isPag(String ecboardid ):Boolean
{
if(ecboardid != null)
{
if(ecboardid.search('xxx') != -1)
{
return false;
}
return true;
}
else
{
return false;
}
}
}
Будет связываться так:
visible = {Encoder.isPag(encoder.ecboardid)}
работа? Будут ли видны изменения при изменении encoder.ecboardid?