0

現在、2 ページの Win 8 Metro スタイル アプリのキーで並べ替えられたリストを作成しようとしています。最初に、データ配列から
2 つの新しい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 に答える