我正在为我的应用程序添加语义缩放,并且我在缩小列表视图中遇到数据绑定问题。 在正常(放大)列表视图中,我绑定了分组数据,它呈现得很好。 对于缩小列表视图,我想渲染相同的分组数据(相同的itemDataSource和groupDataSource),但使用不同的itemTemplate和groupTemplate(与普通视图相同但更小)。
我遇到的问题是,当我缩小时,我在ui.js第2117行收到错误“0x800a138f - JavaScript运行时错误:Object.defineProperty:参数不是对象”。
我尝试将缩小的listview itemDataSource属性绑定到groups.dataSource集合,而不是设置groupDataSource属性(就像我在网上找到的所有示例一样),我工作正常。
为什么缩小后的视图不会像普通视图一样呈现分组项目?
修改 看起来像缩小视图的行为方式与普通(放大)列表视图不同。当放大视图同时接受itemDataSource和groupDataSource时,缩小视图仅接受itemDataSource。 我编辑了Microsoft Official Semantic Zoom Sample(scenario2.html)并更改了zoomedOutListView以使用myGroupedList.dataSource作为itemDataSource,并出现了同样的问题。
之前的代码:
<div id="zoomedOutListView"
data-win-control="WinJS.UI.ListView"
data-win-options="{
itemDataSource: myGroupedList.groups.dataSource,
itemTemplate: semanticZoomTemplate,
selectionMode: 'none',
tapBehavior: 'invoke',
swipeBehavior: 'none'
}"
></div>
之后的代码(再现问题):
<div id="zoomedOutListView"
data-win-control="WinJS.UI.ListView"
data-win-options="{
itemDataSource: myGroupedList.dataSource, //originally was myGroupedList.groups.dataSource
itemTemplate: semanticZoomTemplate,
selectionMode: 'none',
tapBehavior: 'invoke',
swipeBehavior: 'none'
}"
></div>
感谢。 迭
答案 0 :(得分:1)
如果您使用的是自定义IListDataSource,请确保实现itemFromKey方法。