Skip to content

Binding with {} vs binding mxml (ConstantBinding) #1244

@mjesteve

Description

@mjesteve

I am experimenting with Binding, specifically I am trying to bind the “dataProvider” property, of a Jewel List control, with a “dataProv” property, of the mxml view; my goal is that when I update the dataProv property the dataProvider property of the list is updated.

Binding with “{}” works perfectly, but binding through “ConstantBinding” works when the bead is initialized (set strand) but never updates the list's dataProvider again.

We can observe this behavior in the “TabBarPlayGround” view of the TDJ with the first two TabBars:

1º)
<j:TabBar width="100%" className="tabBarVerticalIconItemRenderer" dataProvider="{tabBarData}">

2º)

<j:TabBar localId="tabbar2" selectedIndex="2" className="tabBarHorizontalIconItemRenderer">
	<j:beads>
		<js:ConstantBinding sourcePropertyName="tabBarData" destinationPropertyName="dataProvider"/>
	</j:beads>
</j:TabBar>
private var _tabBarData:ArrayList = new ArrayList([
				new TabBarButtonVO("Tab 1", "tab1", MaterialIconType.ACCESSIBILITY),
				new TabBarButtonVO("Tab 2", "tab2", MaterialIconType.ACCESS_ALARMS),
				new TabBarButtonVO("Tab 3", "tab3", MaterialIconType.WALLPAPER),
				new TabBarButtonVO("Tab 4", "tab4", MaterialIconType.NATURE)
			]);

[Bindable]
public function get tabBarData():ArrayList
{
	return _tabBarData;
}
public function set tabBarData(value:ArrayList):void
{
	_tabBarData = value;
}
private function updateTabBarData():void
{
	tabBarData = new ArrayList([
		new TabBarButtonVO("Other Tab 1", "tab1", MaterialIconType.MORE),
		new TabBarButtonVO("Other Tab 2", "tab2", MaterialIconType.PAGES),
		new TabBarButtonVO("Other Tab 3", "tab3", MaterialIconType.ZOOM_IN)
		]);
}

When tabBarData is updated, updateTabBarData(), changes are reflected in the first TabBar but not in the second.
Is this performance as expected? Should another bead be used?

Thx

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions