diff --git a/tns-core-modules/ui/list-view/list-view-common.ts b/tns-core-modules/ui/list-view/list-view-common.ts index e8ee342c4..a53018557 100644 --- a/tns-core-modules/ui/list-view/list-view-common.ts +++ b/tns-core-modules/ui/list-view/list-view-common.ts @@ -1,4 +1,4 @@ -import { ListView as ListViewDefinition, ItemsSource, ItemEventData } from "."; +import { ListView as ListViewDefinition, ItemsSource, ItemEventData, TemplatedItemsView } from "."; import { CoercibleProperty, CssProperty, Style, View, Template, KeyedTemplate, Length, Property, Color, Observable, EventData, CSSType } from "../core/view"; import { parse, parseMultipleTemplates } from "../builder"; import { Label } from "../label"; @@ -19,7 +19,7 @@ export module knownMultiTemplates { const autoEffectiveRowHeight = -1; @CSSType("ListView") -export abstract class ListViewBase extends View implements ListViewDefinition { +export abstract class ListViewBase extends View implements ListViewDefinition, TemplatedItemsView { public static itemLoadingEvent = "itemLoading"; public static itemTapEvent = "itemTap"; public static loadMoreItemsEvent = "loadMoreItems"; diff --git a/tns-core-modules/ui/list-view/list-view.d.ts b/tns-core-modules/ui/list-view/list-view.d.ts index 680417c25..e4315e5fe 100644 --- a/tns-core-modules/ui/list-view/list-view.d.ts +++ b/tns-core-modules/ui/list-view/list-view.d.ts @@ -154,6 +154,15 @@ export interface ItemsSource { getItem(index: number): any; } +export interface TemplatedItemsView { + items: any[] | ItemsSource; + itemTemplate: string | Template; + itemTemplates?: string | Array; + refresh(): void; + on(event: "itemLoading", callback: (args: ItemEventData) => void, thisArg?: any); + off(event: "itemLoading", callback: (args: EventData) => void, thisArg?: any); +} + /** * Represents the property backing the items property of each ListView instance. */