我正在使用默认的网格应用模板,我有一个问题,我还没有找到一个好的答案。
如果你只是使用样本数据并从分组中删除所有数据元素,有没有办法显示一个简单地说“没有项目”的项目模板?
组标题仍然存在,这很好,只是有一个指标,项目列表中没有数据。
我尝试了一个DataTemplateSelector但如果没有项目则不会使用它。像ListView或GridView这样的东西没有EmptyDataTemplate
有点莫名其妙修改 我问这个特定情况的原因是这个应用程序显示按公司分组的员工。如果您添加新公司,我仍然希望显示该公司的名称,如果您单击该组的标题,即使没有分配员工,您仍然可以看到有关该公司的信息。
因此,即使没有分配员工(项目),我的组标题仍然可以导航到导航栏中。我想直接在组标题下面的项目说“没有员工在场”,但仍然可以看到公司信息。
例如
公司1>
公司2>
点击公司2仍会在GroupDetails页面上显示有关该公司的信息。
答案 0 :(得分:1)
我设法通过另一个问题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;
}
}
所以我的结果是以下
然后点击标题
答案 1 :(得分:0)
DataTemplateSelector
是您最好的选择。更好的选择可能是不显示空组 - 使用GroupStyle.HidesIfEmpty