语义缩放 - 显示不包含任何项目的字母

Semantic Zoom - Show letters containing no items

如何在我的语义缩放控件的 ZoomedOutView 视图中显示不包含以该字母开头的项目(灰色)的字母表中的字母?

我想达到这样的效果(不包括 'Social'、'Favorites' 和 '#'):

但我最终得到的是:

现在我知道下面的代码是问题所在,但我不知道需要将其更改为什么。有什么想法吗?

internal List<GroupInfoList<object>> GetGroupsByLetter()
        {
            List<GroupInfoList<object>> groups = new List<GroupInfoList<object>>();

            var query = from item in Collection
                        orderby ((Item)item).Station
                        group item by ((Item)item).Station[0] into g
                        select new { GroupName = g.Key, Items = g };
            foreach (var g in query)
            {
                GroupInfoList<object> info = new GroupInfoList<object>();
                info.Key = g.GroupName;
                foreach (var item in g.Items)
                {
                    info.Add(item);
                }
                groups.Add(info);
            }

            return groups;

        }

这很简单。

您必须始终包括每个字母组。

在您的 ZoomedInView 中,您将其设置为隐藏没有项目的组。它是 gridview 中的 属性。在您的 ZoomedOutView 中,您只需使用一个转换器显示 gridview 中的所有组,该转换器检查是否有 children,并根据需要切换颜色。如果用户单击没有 children 的组,您还将添加不响应用户的逻辑。结束。问题已解决。

祝你好运!