【发布时间】:2013-10-13 20:39:57
【问题描述】:
ListView 显示以下类的集合:
public class Employee
{
private string _department;
private string _manager;
private string _name;
private string _address;
public string Department
{
get { return _department; }
}
public string Manager
{
get { return _manager; }
}
public string Name
{
get { return _name; }
}
public string Address
{
get { return _address; }
}
}
部门和经理之间存在一对一的关系,因此具有相同部门的任何 2 行也将具有相同的经理。
我想按部门/经理分组,组标题显示“部门(经理)”。
我的 CollectionViewSource 看起来像
<CollectionViewSource x:Key="cvsEmployees" Source="{Binding Employees}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Department" />
<PropertyGroupDescription PropertyName="Manager" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
计划是不显示第一级标题(部门),并以某种方式从第二级标题绑定到部门(第一级)和经理(第二级)。
3 个问题:
-
为避免显示第一级标题,我在 groupstyle 中有一个空的数据模板:
<GroupStyle> <GroupStyle.HeaderTemplate> <DataTemplate> </DataTemplate> </GroupStyle.HeaderTemplate> </GroupStyle>这看起来很笨重。有没有更优雅的方式来跳过组头?
如何从2级标题(经理)绑定到1级分组属性(部门)以实现所需的“部门(经理)”?
有没有比创建 2 个分组级别更好的方法?
谢谢
【问题讨论】:
-
您能否为 ListView 显示您的 ItemsSource,即构成您的 ItemsSource 的实际 .cs 类。
-
在原始问题中添加的类