1
我在ListView的数据源中没有显示对象的最新详细信息时遇到问题。 dataSource通过调用WinJS.Binding.List对象的createSorted method来创建。每个对象看起来是这样的:当底层对象发生变化时,ListView不会更新
var obj = {
title: 'First item',
priority: 2
};
我创建/设置DataSource这样的:
sortedItemList = itemList.createSorted(function (lhs, rhs) {
return rhs.priority - lhs.priority;
});
listView.itemDataSource = sortedItemList.dataSource;
ItemTemplate中为ListView看起来像这样:
<div id="itemTemplate" data-win-control="WinJS.Binding.Template">
<div>
<h4 data-win-bind="innerText: title"></h4>
</div>
</div>
的变化处理程序两个字段都是这样的:
titleControl.onchange = function() {
curItem.title = titleControl.value;
sortedItemList.notifyMutated(sortedItemList.indexOf(curItem););
};
priorityControl.onchange = function() {
curItem.priority = priorityControl.value;
sortedItemList.notifyMutated(sortedItemList.indexOf(curItem););
};
createSorted的文档说,确保每当对象更改时调用notifyMutated。如果我改变优先级,那么ListView将适当地移动项目。但是如果我编辑标题,则ListView不会更新以显示新标题。我究竟做错了什么?
如果您使用JS模板,该代码如何工作? – rbyrne