You might want to use bindSetter rather than bindProperty. This allows you to have a method handle when the property has changed:
BindingUtils.bindSetter(itemModeChanged,
ModelLocateor.getInstance(),
"itemMode");
protected function itemModeChanged(mode:String):void
{
this.btnNewPost.enabled = (mode == "ready");
}
(As another thought, is there any reason you can't specify the binding in the MXML? enabled="{ModelLocator.getInstance().itemMode == 'ready'}
I haven't tried this exact example to verify it works, but I think it should.)