0

我目前正在尝试为两页 Win 8 Metro 风格的应用程序创建一个按键排序的列表。首先,我从我的数据数组中
创建两个新的WinJS.Binding.List

var itemList = new WinJS.Binding.List(dataItems);
var list = new WinJS.Binding.List(dataItems);

接下来我创建我的过滤列表

Data.updateGroup(options)

function updateGroup(key) {  
list = itemList.createFiltered(function (itemList) { return itemList.group == key; });
}

然后我将此列表分配给我的 listView

listView.itemDataSource = Data.list.dataSource;
listView.itemTemplate = element.querySelector(".itemtemplate");
listView.layout = new ui.ListLayout();

但是当我启动我的应用程序时,会显示未过滤的列表。

我必须改变什么?

4

1 回答 1

1

您可以使用其createSorted方法创建 WinJS.Binding.List 的排序投影,您可以在其中提供您将使用您的键的排序函数。

createSorted 的返回是 WinJS.Binding.List 的派生,因此一旦知道您的过滤器,您就可以在其上调用 createFiltered。

换句话说,List 的投影是可组合的,因此您可以将投影方法链接在一起,例如 createSorted().createFiltered() 或 createFiltered().createSorted()。同样适用于 createGrouped。

于 2013-10-01T16:46:44.393 回答