如何在 WinJs 中创建排序列表

how to create a sorted list in WinJs?

本文关键字:创建 排序 列表 WinJs      更新时间:2023-09-26

我目前正在尝试创建一个列表,该列表按两页 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.itemDataSource = Data.list.dataSource;
listView.itemTemplate = element.querySelector(".itemtemplate");
listView.layout = new ui.ListLayout();

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

我必须改变什么?

您可以使用其 createSort 方法创建 WinJS.Binding.List 的排序投影,您为其提供了将使用密钥的排序函数。

createSorted的返回是WinJS.Binding.List的衍生产品,因此一旦知道过滤器,就可以调用createFilter。

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