【发布时间】:2015-01-29 19:24:23
【问题描述】:
我可以使用 LINQ 在 ListBox 中进行分组吗? 我有财产
public IEnumerable<IGrouping<string, Rout>> GroupedTypeRouts
{
get { return Routs.GroupBy(x => x.Transport); }
}
我想按组在 ListBox 中显示。
已更新。 这个我试过了
private CollectionViewSource groupedTypeRoutsView;
public CollectionViewSource GroupedTypeRoutsView
{
get
{
if (groupedTypeRoutsView == null)
{
groupedTypeRoutsView = new CollectionViewSource();
groupedTypeRoutsView.IsSourceGrouped = true;
groupedTypeRoutsView.Source = GroupedTypeRouts;
}
return groupedTypeRoutsView;
}
}
public IEnumerable<IGrouping<string, Rout>> GroupedTypeRouts
{
get { return Routs.GroupBy(x => x.Transport); }
}
但我不知道如何在 ListBox 中显示它
<ListView Grid.Row="2"
Grid.ColumnSpan="9"
ItemsSource="{Binding Source=GroupedTypeRoutsView}">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Image Source="{Binding Key, Converter={StaticResource TransportToImageConverter}}"></Image>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
</ListView>
我得到的是 GroupedTypeRoutsView 值和组
【问题讨论】:
-
这不是开箱即用的。所以简短的回答是否定的。但 ListBox 支持开箱即用的未分组数据分组。您将找到解决此问题的教程 (wpf-tutorial.com/listview-control/listview-grouping)。我认为这里不需要 LINQ。
-
删除源=..