【发布时间】:2021-01-11 14:36:27
【问题描述】:
我正在尝试使用以下代码在 UWP DataGrid 中显示由Context 属性分组的Information 对象。第一种方法创建一个ObservableCollection<GroupInfoCollection<Information>>();,它被设置为CollectionViewSource.Source,如第二部分所示。使用的 XAML 显示在最后。
我可以在 UI 中看到组标题为 Group,但没有任何子项。我不确定我错过了什么。此外,组标题未显示 Context 属性名称。
var query = from item in exception.Information
group item by item.Context into g
select new { GroupName = g.Key, Items = g };
var information = new ObservableCollection<GroupInfoCollection<Information>>();
foreach (var group in query)
{
var info = new GroupInfoCollection<Information>
{
Key = group.GroupName
};
foreach (var item in group.Items)
{
info.Items.Add(item);
}
information.Add(info);
}
return information;
CollectionViewSource groupedItems = new CollectionViewSource
{
IsSourceGrouped = true,
Source = information // returned from above method
};
InformationGrid.ItemsSource = groupedItems.View;
<controls1:DataGrid x:Name="InformationGrid" AutoGenerateColumns="False" >
<controls1:DataGrid.Columns>
<controls1:DataGridTemplateColumn Header="Name" Width="48">
<controls1:DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="jama:Information">
<FontIcon FontFamily="Segoe MDL2 Assets" Glyph="{x:Bind local:JamaOptionPage.GetGlyph(Level)}"/>
</DataTemplate>
</controls1:DataGridTemplateColumn.CellTemplate>
</controls1:DataGridTemplateColumn>
<controls1:DataGridTemplateColumn Header="Name" Width="220">
<controls1:DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="jama:Information">
<HyperlinkButton Content="{x:Bind Name}" NavigateUri="{x:Bind Link}" />
</DataTemplate>
</controls1:DataGridTemplateColumn.CellTemplate>
</controls1:DataGridTemplateColumn>
<controls1:DataGridTextColumn Header="Error" Binding="{Binding Message}"/>
</controls1:DataGrid.Columns>
</controls1:DataGrid>
【问题讨论】: