将windows-8语义缩小以包含空项

将windows-8语义缩小以包含空项,windows-8,semantic-zoom,Windows 8,Semantic Zoom,我理解向ItemTemplate选择器提供数据模板,但我希望显示的项目不是数据的一部分。例如,假设您在教室里有以下儿童列表: 马克·安德森 莎拉·白金汉 戴夫·克里斯蒂 杰尼·汤普森 并使用姓氏中的第一个字母来组织数据。如果我将代表学生的数据项(FirstName、LastName)传递给groupedItemList 'groupedItemList = itemList.createGrouped( function getGroupKey(dataItem)

我理解向ItemTemplate选择器提供数据模板,但我希望显示的项目不是数据的一部分。例如,假设您在教室里有以下儿童列表:

  • 马克·安德森
  • 莎拉·白金汉
  • 戴夫·克里斯蒂
  • 杰尼·汤普森 并使用姓氏中的第一个字母来组织数据。如果我将代表学生的数据项(FirstName、LastName)传递给groupedItemList

    'groupedItemList = itemList.createGrouped(
                    function getGroupKey(dataItem) {
                        return dataItem.LastName.toUpperCase().charAt(0);
    
                    },
                    function getGroupData(dataItem) {
                        return {
                            Name: dataItem.LastName.toUpperCase().charAt(0)
                        };
                    },
                    function compareGroups(left, right) {
                        return left.toUpperCase().charCodeAt(0) - right.toUpperCase().charCodeAt(0);
                    }
                ),`
    
    语义缩小仅包含以下字母

    A, B, C, T. 
    

    我想要一个字母表中所有字母的列表,然后设置它们的样式,这样那些没有项目的字母可以得到另一种视觉处理

    在花了一些时间试图找到同一问题的解决方案后,我找到了一个解决方案,并将其发布在gist上


    希望它足够清晰。

    您使用什么制作语义缩放视图?如果您使用的是GridView,那么可以使用ItemTemplateSelector来检查我是否使用WinJS.UI.ListView,我相信它支持ItemTemplateSelector。您可以详细说明您的响应吗。ItemTemplateSelector允许您选择您的项目将具有的witch datatemplate(不知道这在winjs中是如何工作的,但您可以查看文档),以便在listview每次需要绘制一个元素时执行此操作,并询问ItemTemplateSelector您希望提供的witch datatemplate,通过此行为,您可以检查您的项目是否应该是可单击的;)