我正在使用默认的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/