Saturday, 21 February 2009

Named Bindable and PropertyChangeEvent

I had an issue with using named bindables today and could not figure out why it wasn't working. I was using a PropertyChangeEvent as I not only wanted to bind to the property but also listen to the event and remove the previous value from an array (using the oldValue property of the event).
This worked:
private var _boundProperty : String;

[Bindable( "namedBindable" )]
public function get boundProperty() : String
{
return _boundProperty;
}

public function set boundProperty( value : String ) : void
{
_boundProperty = value;

dispatchEvent( new Event( "namedBindable" ) );
}
But this didn't:
private var _boundProperty : String;

[Bindable( "namedBindable" )]
public function get boundProperty() : String
{
return _boundProperty;
}

public function set boundProperty( value : String ) : void
{
_boundProperty = value;

dispatchEvent( new PropertyChangeEvent( "namedBindable" ) );
}
It turns out that if you use PropertyChangeEvent Flex is a bit picky and doesn't use it for binding unless you populate the property property! 
Like this:
private var _boundProperty : String;

[Bindable( "namedBindable" )]
public function get boundProperty() : String
{
return _boundProperty;
}

public function set boundProperty( value : String ) : void
{
_boundProperty = value;

dispatchEvent(
new PropertyChangeEvent(
"namedBindable",
false, false,
PropertyChangeEventKind.UPDATE,
"boundProperty"
) );
}
This seems a bit odd to me as just a plain event works fine with no additional properties. Anyway, hopefully this blog post will stop anyone else wasting time investigating this problem.

4 comments:

  1. God, thanks for this entry this confused the hell out of me

    ReplyDelete
  2. No problem. It was a very annoying problem to debug so I hope I managed to save someone else the pain!

    ReplyDelete
  3. For example, in a soccer recreation between Arsenal and Chelsea, possible bets embrace Arsenal to beat Chelsea, Arsenal to win 2-1, Arsenal to win by one objective, Arsenal to be leading at half-time, and a selected participant to attain a objective. A mainstream function in the best on-line sportsbooks nowadays, stay streaming 메리트카지노 is available for sure games. You’re in a position to} watch games not available through your common cable tv, whilst being able to|with the power to|having the power to} bet stay on the same time. Boasting one of the largest betting markets on the market, FanDuel also presents an impressive geographic footprint.

    ReplyDelete
  4. They analysed how the variety of decks in play affects your probabilities to win and how you can make the most effective decision based mostly on the cards you see on the desk. We have all appeared for the most effective and the best strategy to win at blackjack after we lost our first arms on-line. In other words, if you are looking for the most effective blackjack betting technique to increase your probabilities to win, you may love this information. If you’re new to the sport or an skilled blackjack player trying to actually perfect your skills, take a while to follow our useful the way to|tips on how to} play information. This is another benefit appreciated from on-line blackjack is the bonuses and recompenses. Remember have the ability to|you possibly 카지노사이트 can} as nicely obtain rewards whilst you play offline.

    ReplyDelete