1

我为实现 IListDataAdapter 的 ListView 创建了一个自定义数据源。数据来自几个不同的 Web 服务,需要多次异步调用才能完全填充。数据正确填充,ListView 展示了很好的“无限滚动”功能,根据需要加载新的数据页面。

我现在正在尝试过滤几个不同属性的数据。我有一个复选框和一个下拉列表,它们都有正确触发的事件。这些事件应该调用 updateLayout 方法……但由于某种原因,该方法最终未定义。

    checkBoxClick: function (eventObject) {
        this.updateLayout(document, Windows.UI.ViewManagement.ApplicationView.value);
    },

    dropDownListValueChange: function (eventObject) {
        this.updateLayout(document, Windows.UI.ViewManagement.ApplicationView.value);
    },

我希望有人有一个使用自定义数据源并支持排序和过滤的项目,并且愿意与班级共享该代码。

4

2 回答 2

2

您可以使用以下 API:

WinJS.Binding.List.createSorted(sortingFunction)WinJS.Binding.List.createFiltered(filterFunction)

您应该dataSource首先使用 "sorted" 或 "filtered" 将您的视图绑定到视图WinJS.Binding.List。然后任何新增加的价值dataSource都会自行更新。

PS 我还注意到您正在使用updateLayout. 我不知道它是否与您的问题有关,但是自从 Windows 8 发布以来,它开始使用一个调用initializeLayout来更新视图的函数。

于 2012-12-17T02:43:57.427 回答
0

很可能该this变量在您的事件处理程序中的范围不正确。

于 2013-05-14T03:08:29.550 回答