【发布时间】:2015-01-30 01:56:16
【问题描述】:
我一直在关注这个guide(以及其他资源)并让 ListBox 成功地将我的用户列表分组。现在的问题有两个;
- 每个组的标题没有显示它的分组依据(目前,只是一个 int)。
- 如果可能的话,我希望标题是一个查找。 (我使用的是实体框架,因此可以通过在查询中使用
Include(u => u.Ref_Department)来获取用户列表,从而使其变得多余。)
数据如下;
用户
用户名
id_Department
名称
部门
id部门
部门名称
XAML;
<Grid>
<Grid.Resources>
<CollectionViewSource x:Key="lsUsers" Source="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=_Users}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="id_Department"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource lsUsers}}">
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander Header="{Binding id_Department}" IsExpanded="True">
<ItemsPresenter/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListBox.GroupStyle>
</ListBox>
</Grid>
_Users 是该类的 List<Users> 属性,无论如何它显然工作正常,它只是由于某种原因掉下来的标题,我真的不明白为什么。
id_Department 下的 <Expander Header... 行上有一个突出显示/警告,上面写着“由于未知数据上下文,无法解析符号 'id_Department'”
更新
如果我将<Expander Header... 绑定更改为Name,它会显示id_Department。不知道它是如何/为什么起作用的,我不确定它对上面的第 1 点有帮助。
【问题讨论】: