【问题标题】:ListBox grouping and LINQListBox 分组和 LINQ
【发布时间】: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。
  • 删除源=..

标签: c# wpf linq listbox


【解决方案1】:

试试:

    private ListCollectionView groupedTypeRoutsView;
    public ListCollectionView GroupedTypeRoutsView
    {
        get
        {
            if (groupedTypeRoutsView == null)
            {
                groupedTypeRoutsView = new ListCollectionView((IList)Routs);
                groupedTypeRoutsView.GroupDescriptions.Add(new PropertyGroupDescription("Transport"));
            }

            return groupedTypeRoutsView;
        }
    }


   <ListBox ItemsSource="{Binding GroupedTypeRoutsView}" />

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多