GridView - 限制组项

时间:2013-02-19 14:27:34

标签: xaml windows-8

我的数据是一个组列表,每个组都有一个未定义的项目数。对于Hubpage,我想将每个组的项目限制为特定的数字。我是否必须创建仅包含这10个项目的第二个集合,或者是否有XAML方法将组项目限制在前n个?

3 个答案:

答案 0 :(得分:2)

如果你绑定到ObservableCollection(或其他Collection类型)的IEnumerable,请使用Take extension方法返回前N个。在示例模板中,你会做类似......

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    // TODO: Create an appropriate data model for your problem domain to replace the sample data
    var sampleDataGroups = SampleDataSource.GetGroups((String)navigationParameter);
    this.DefaultViewModel["Groups"] = sampleDataGroups.Take(5);
}

答案 1 :(得分:1)

这两种方法都是可能的,但需要注意。如果您想使用标准XAML控件,则必须使用您想要显示的项目来有效地创建新集合。例如Take(N)将使用N个元素创建新集合。您还可以创建自己的自定义控件,以限制可见元素的数量。我一般的新收集方法是最常见的方法。

答案 2 :(得分:0)

您可以在网格的“Grouped”事件中执行以下操作:

    if(xamDataGridHotworkS_Flow.FieldLayouts[0].SortedFields.Count > 1)
    {
         xamDataGridHotworkS_Flow.FieldLayouts[0].SortedFields.RemoveAt(1);
    }

如果网格上有分组,请删除用户提供的下一个分组。