C# 排序水平列表视图

C# 排序水平列表视图,c#,wpf,mvvm,C#,Wpf,Mvvm,我想要一个列表视图根据其绑定到的对象进行排序 <ListView x:Name="ListView1" Grid.Row="2" Grid.Column="2" VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="False" ItemsSource="{Binding Path=CurrentProductsImages}"> <ListView.I

我想要一个列表视图根据其绑定到的对象进行排序

    <ListView x:Name="ListView1" Grid.Row="2" Grid.Column="2"  VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="False"  ItemsSource="{Binding Path=CurrentProductsImages}">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Border BorderBrush="Black" BorderThickness="0,0,2,0" >
                    <Image Source="{Binding Path=Data, Converter={StaticResource ImageSourceConverter}}" RenderOptions.BitmapScalingMode="Fant" Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView} },Path=ActualHeight, Converter={StaticResource HeightMinusConverter}}" />
                </Border>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

因此绑定项CurrentProductsImages有一个名为“DisplayOrder”的变量 我想将Listview从该值中排序,但找不到方法。大多数垂直排序方法使用gridview,但由于矿井水平堆放,我无法使其工作


我可以在绑定之前对对象进行排序,但我希望它更多地位于WPF方面。有什么想法吗?非常感谢

xaml排序方法是使用collectionviewsource。那有着糟糕的描述

<CollectionViewSource x:Key="SortedItems" Source="{Binding UnsortedItems}" >
    <CollectionViewSource.SortDescriptions>
       <scm:SortDescription PropertyName="Blaa" />
       <scm:SortDescription PropertyName="Blaa2" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>
设立:

 CollectionViewSource cvs = new CollectionViewSource();
 cvs.Source = People;
 PeopleView = (CollectionView)cvs.View;
分类:

PeopleView.SortDescriptions.Clear();
PeopleView.SortDescriptions.Add(new SortDescription("OrganizationLevel", ListSortDirection.Ascending));
PeopleView.SortDescriptions.Add(new SortDescription("LastName", ListSortDirection.Ascending));
PeopleView.SortDescriptions.Add(new SortDescription("FirstName", ListSortDirection.Ascending));

在绑定代码和数据结构后面共享代码。
PeopleView.SortDescriptions.Clear();
PeopleView.SortDescriptions.Add(new SortDescription("OrganizationLevel", ListSortDirection.Ascending));
PeopleView.SortDescriptions.Add(new SortDescription("LastName", ListSortDirection.Ascending));
PeopleView.SortDescriptions.Add(new SortDescription("FirstName", ListSortDirection.Ascending));