我为ListView创建了一个自定义数据源,用于实现IListDataAdapter。数据来自几个不同的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);
},
我希望有人在那里有一个项目使用自定义数据源并支持排序和过滤,并愿意与该类共享该代码。
答案 0 :(得分:2)
您可以使用以下API:
WinJS.Binding.List.createSorted(sortingFunction)
和WinJS.Binding.List.createFiltered(filterFunction)
您应首先使用“已排序”或“已过滤”dataSource
将WinJS.Binding.List
绑定到视图。然后,对同一dataSource
的任何新添加的值都将自行更新。
P.S。我还注意到你正在使用updateLayout
。我不知道它是否与您的问题有关,但自Windows 8发布以来,它开始使用名为initializeLayout
的函数来更新视图。
答案 1 :(得分:0)
this
变量很可能在事件处理程序中没有正确确定范围。