1

我正在向我的应用程序添加语义缩放,并且在缩小的列表视图中遇到数据绑定问题。在普通(放大)列表视图中,我正在绑定分组数据并且它呈现得很好。对于缩小的列表视图,我想呈现相同的分组数据(相同的 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>

谢谢。迭戈

4

1 回答 1

1

如果您使用的是自定义 IListDataSource,请确保实现 itemFromKey 方法。

于 2012-07-07T04:45:45.033 回答