首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定Wpf列表

绑定Wpf列表
EN

Stack Overflow用户
提问于 2017-03-17 13:26:27
回答 2查看 48关注 0票数 0

我有一些问题要解决。

代码语言:javascript
复制
<DataGrid x:Name="gridMates" ItemsSource="{Binding Groups}">

绑定组。这些小组由以下人员组成:

代码语言:javascript
复制
public class Group
{ 
    public List<ClassMate> CLGroup { get; set; }
    public string GroupName { get; set; }
}

ClassMateclass:

代码语言:javascript
复制
public class ClassMate: INotifyPropertyChanged
{
    public string Name { get; set; }
    public string DisplayName { get; set; }}

因此,我想在我的数据数据库中显示每个GroupName和DisplayName的每个ClassMate。

我看到GroupName这样做:

代码语言:javascript
复制
<DataGrid x:Name="gridMates"  ItemsSource="{Binding Groups}"><DataGrid.Columns>
        <DataGridTextColumn Header="GroupName" Binding="{Binding Path=GroupName}" />
        <DataGridTextColumn Header="DisplayName" Binding="{Binding Path=CLGroup.DisplayName}" />

但我看不出正确的DiplayName。怎么啦?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-17 13:56:09

CLGroup是一个列表,它可以有多个项目,不同的项目可以有不同的DisplayNames。CLGroup列表本身没有DisplayName。例如,要从第一项获取DisplayName,请使用CLGroup[0].DisplayName路径。

如果需要显示所有项,请将DataGridTemplateColumn与ItemsControl一起使用在CellTemplate中。

这两种办法:

代码语言:javascript
复制
<DataGrid.Columns>
    <DataGridTextColumn Header="GroupName" Binding="{Binding Path=GroupName}" />

    <DataGridTextColumn Header="DisplayName" Binding="{Binding Path=CLGroup[0].DisplayName}" />

    <DataGridTemplateColumn Header="DisplayName">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ItemsControl ItemsSource="{Binding Path=CLGroup}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Path=DisplayName}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

</DataGrid.Columns>
票数 0
EN

Stack Overflow用户

发布于 2017-03-17 13:56:12

我想你想要这样的东西

代码语言:javascript
复制
 <DataGrid x:Name="gridMates"  ItemsSource="{Binding Groups}"><DataGrid.Columns>
        <DataGridTextColumn Header="GroupName" Binding="{Binding Path=GroupName}" />
        <DataGridTemplateColumn Header="Class Mates">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                   <DataGrid x:Name="gridClassMates"  ItemsSource="{Binding CLGroup}">
                       <DataGrid.Columns>
                          <DataGridTextColumn Header="DisplayName" Binding="{Binding Path=DisplayName}" />
                       </DataGrid.Columns> 
                   </DataGrid>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
         </DataGridTemplateColumn>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42858786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档