diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj
index 863c5fdb7..8bafda30a 100644
--- a/CrossPlatformModules.csproj
+++ b/CrossPlatformModules.csproj
@@ -198,6 +198,7 @@
+
file-name-resolver.d.ts
diff --git a/apps/ui-tests-app/pages/listview_binding.ts b/apps/ui-tests-app/pages/listview_binding.ts
new file mode 100644
index 000000000..7a2f9ad0f
--- /dev/null
+++ b/apps/ui-tests-app/pages/listview_binding.ts
@@ -0,0 +1,23 @@
+import pageModule = require("ui/page");
+import gridLayoutModule = require("ui/layouts/grid-layout");
+import listViewModule = require("ui/list-view");
+import observable = require("data/observable");
+import observableArr = require("data/observable-array");
+
+var arr = new observableArr.ObservableArray();
+for (var i = 0; i < 100; i++) {
+ arr.push("item " + i);
+}
+
+export function createPage() {
+ var page: pageModule.Page = new pageModule.Page();
+ var grid: gridLayoutModule.GridLayout = new gridLayoutModule.GridLayout();
+ var listView: listViewModule.ListView = new listViewModule.ListView();
+ listView.on(listViewModule.ListView.loadedEvent, function (args: observable.EventData) {
+ (args.object).items = arr;
+ });
+ grid.addChild(listView);
+ page.content = grid;
+
+ return page;
+}
\ No newline at end of file
diff --git a/ui/core/bindable.ts b/ui/core/bindable.ts
index 13fdc8de8..071b9183d 100644
--- a/ui/core/bindable.ts
+++ b/ui/core/bindable.ts
@@ -49,6 +49,7 @@ export class Bindable extends dependencyObservable.DependencyObservable implemen
var bindingSource = source;
if (!bindingSource) {
bindingSource = this.bindingContext;
+ binding.sourceIsBindingContext = true;
}
if (!types.isNullOrUndefined(bindingSource)) {
binding.bind(bindingSource);
@@ -102,8 +103,7 @@ export class Bindable extends dependencyObservable.DependencyObservable implemen
for (var p in this._bindings) {
binding = this._bindings[p];
- var sourceIsNotBindingContext = (binding.source && (binding.source.get() !== oldValue));
- if (binding.updating || sourceIsNotBindingContext) {
+ if (binding.updating || !binding.sourceIsBindingContext) {
continue;
}
@@ -122,6 +122,7 @@ export class Bindable extends dependencyObservable.DependencyObservable implemen
export class Binding {
options: definition.BindingOptions;
updating = false;
+ sourceIsBindingContext: boolean;
source: WeakRef