C# 绑定Wpf列表
我有一些问题要解决这个问题C# 绑定Wpf列表,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我有一些问题要解决这个问题 <DataGrid x:Name="gridMates" ItemsSource="{Binding Groups}"> 所以我想在我的数据网格上显示每个同学的组名和显示名 我看到GroupName正在这样做: <DataGrid x:Name="gridMates" ItemsSource="{Binding Groups}"><DataGrid.Columns> <DataGridTextColumn
<DataGrid x:Name="gridMates" ItemsSource="{Binding Groups}">
所以我想在我的数据网格上显示每个同学的组名和显示名
我看到GroupName正在这样做:
<DataGrid x:Name="gridMates" ItemsSource="{Binding Groups}"><DataGrid.Columns>
<DataGridTextColumn Header="GroupName" Binding="{Binding Path=GroupName}" />
<DataGridTextColumn Header="DisplayName" Binding="{Binding Path=CLGroup.DisplayName}" />
但我看不出正确的名字。
有什么问题吗?
CLGroup
是一个可以包含多个项目的列表,不同的项目可以有不同的显示名称。CLGroup列表本身没有DisplayName。例如,要从第一项获取DisplayName,请使用CLGroup[0]。DisplayName
path
如果需要显示所有项目,请在CellTemplate中使用带有items控件的DataGridTemplateColumn
两种方法:
<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>
我想你想要这样的东西
<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>
您的“Group”类中是否有“PointsGroup”属性?抱歉,代码错误。赖特now@SimonLP,CLGroup是一个可以有多个项目的列表,不同的项目可以有不同的显示名。CLGroup列表本身没有DisplayName。例如,要从第一项获取DisplayName,请使用CLGroup[0]。DisplayName
path@ASh很好,但我会把我所有的同学都列在名单上,而不仅仅是第一个
<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>
<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>