From b45718b1ef31acc22687aa5474aaac34a3cf15d6 Mon Sep 17 00:00:00 2001 From: Nedyalko Nikolov Date: Tue, 14 Jul 2015 14:47:40 +0300 Subject: [PATCH 1/3] BindingContext set two times on adding item to ListView. Fixes issue #410. --- apps/tests/ui/list-view/list-view-tests.ts | 27 ++++++++++++++++++++++ ui/core/view-common.ts | 10 ++++---- ui/core/view.d.ts | 2 ++ ui/list-view/list-view-common.ts | 5 ++++ 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/apps/tests/ui/list-view/list-view-tests.ts b/apps/tests/ui/list-view/list-view-tests.ts index e7053a84a..1f16e0e1e 100644 --- a/apps/tests/ui/list-view/list-view-tests.ts +++ b/apps/tests/ui/list-view/list-view-tests.ts @@ -580,6 +580,33 @@ export function test_bindingToParentObjectWithSpacesInIndexer() { helper.buildUIAndRunTest(listView, testAction); } +export function test_ConverterIsCalledJustOnce_onAddingItemsToListView() { + var listView = new listViewModule.ListView(); + var converterCalledCounter = 0; + + var testConverter = function (value) { + converterCalledCounter++; + return value; + } + + app.resources["testConverter"] = testConverter; + + function testAction(views: Array) { + var listViewModel = new observable.Observable(); + listViewModel.set("items", [1, 2, 3]); + listView.bindingContext = listViewModel; + + listView.bind({ sourceProperty: "items", targetProperty: "items" }); + listView.itemTemplate = "