PagedViewCollection按列分组,而不是属性

Cas*_*erT 5 .net c# silverlight group-by

我有这两个班:

class EmpIDPayTypeSettings
{
    public Guid OID { get; set; }
    public Guid PayTypeOID { get; set; }
    public int GroupTypeID { get; set; }
    public Guid EmpOID { get; set; }
    public int OrderBy { get; set; }
}

class DocRegHour
{
    public Guid OID { get; set; }              
    public Guid DocumentOID { get; set; }    
    public Guid medarbejderOID { get; set; } 
    public Guid PaytypeOID { get; set; }     
    public string PayTypeInfo { get; set; }
    public double Hours { get; set; }
    public string Comment { get; set; }  
    public DateTime CreatedDate { get; set; }
    public DateTime LastChangedDate { get; set; }     
}
Run Code Online (Sandbox Code Playgroud)

我有一个DocRegHour绑定到DataGrids itemsource的集合.我希望它们分组GroupTypeID,你可以看到这两个类有PaytypeOID共同之处.

我尝试使用Header = "Group"GroupTypeID在每行中设置as文本来创建一个非绑定的折叠列.然后我写道:

var pcv = new PagedCollectionView(dataGridDayView.ItemsSource);
pcv.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
dataGridDayView.ItemsSource = pcv;
Run Code Online (Sandbox Code Playgroud)

它不起作用.有帮助吗?

澄清.我有:

IEnumerable<DocRegHour> data;
IENumerable<EmpIDPayTypeSettings> userSettings;

var pcv = new PagedCollectionView(data);
dataGridDayView.ItemsSource = pcv;
Run Code Online (Sandbox Code Playgroud)

我想通过GroupTypeID!进行分组,它位于不同的集合中

Lue*_*eTm 1

如果你这样做:

// LINQ the stuff you need and then group by the name you give it
myData.Where(...).Select(emp => new { Group = emp.GroupTypeID });

GroupDescriptor descriptor = new GroupDescriptor("Group");
pcv.GroupDescriptors.Add(descriptor);
Run Code Online (Sandbox Code Playgroud)

它应该有效。尽管我理解你的数据模型,但我并不完全确定。然而,我发现在类似的情况下匿名类型非常方便:)