我正在使用默认的Grid应用程序模板,但有一个问题,我尚未找到一个好的答案。

如果您仅使用样本数据并从分组中删除所有数据元素,那么有什么方法可以显示仅显示“无项目”的项目模板?

组标题仍然存在,这很好,只是有助于指示项目列表中没有数据。

我尝试了DataTemplateSelector,但是如果没有项目,则不使用它。像ListView或GridView这样的东西没有EmptyDataTemplate有点令人困惑

编辑
我问这种特殊情况的原因是该应用程序显示了按公司分组的员工。如果添加新公司,我仍然希望显示公司名称,并且如果您单击该组的页眉,即使未分配任何员工,您仍然可以看到有关该公司的信息。

因此,即使未分配任何员工(项目),我的组标题也应该仍然可见。我想在组标题的正下方说一个类似“无员工在场”的内容,但仍使公司信息可见。

例如

公司1>


员工1
员工2
员工3


公司2>


没有员工在场


单击公司2仍会在GroupDetails页面上显示有关该公司的信息。

最佳答案

我设法通过结合另一个问题here来解决我的问题,并在组中插入一个空项目。

因此,我用一个空数据打了个假员工,然后调整了我的DataTemplate。诀窍是采用对象的绑定容器,并为符合特定条件的项目禁用它。

public class CompanyTemplateSelector : DataTemplateSelector
{
    protected override Windows.UI.Xaml.DataTemplate SelectTemplateCore(object item, Windows.UI.Xaml.DependencyObject container)
    {
        var containingItem = container as GridViewItem;

        if (item is UserDetails)
        {
            UserDetails detail = (UserDetails)item;
            if (detail.UserId == -1)
            {
                containingItem.IsEnabled = false;
                return Empty;
            }
            else
            {
                containingItem.IsEnabled = true;
                return DataPresent;
            }
        }

        return DataPresent;
    }

    public DataTemplate DataPresent
    {
        get;
        set;
    }

    public DataTemplate Empty
    {
        get;
        set;
    }
}


所以我的结果如下



然后点击标题

关于c# - Windows 8 Grid应用程序中的空数据模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23298768/

10-13 07:47
查看更多