WPF中ListView排序

来源:互联网 发布:期房还是二手房 知乎 编辑:程序博客网 时间:2024/06/14 19:21
<!--xaml--> <ListView Margin="51,54,70,64" x:Name="lvList" GridViewColumnHeader.Click="lvList_Click_1" ItemsSource="{Binding}"  >            <ListView.View>                <GridView >                    <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="50"></GridViewColumn>                    <GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="50"></GridViewColumn>                    <GridViewColumn Header="Email" DisplayMemberBinding="{Binding Email}" Width="50"></GridViewColumn>                </GridView>            </ListView.View>        </ListView>//后台代码        private void lvList_Click_1(object sender, RoutedEventArgs e)        {            if (e.OriginalSource is GridViewColumnHeader)            {                //获得点击的列                GridViewColumn clickedColumn = (e.OriginalSource as GridViewColumnHeader).Column;                if (clickedColumn != null)                            {                    //Get binding property of clicked column                                      string bindingProperty = (clickedColumn.DisplayMemberBinding as Binding).Path.Path;                    //获得listview项是如何排序的                    SortDescriptionCollection sdc = this.lvList.Items.SortDescriptions;                    //按升序进行排序                    ListSortDirection sortDirection = ListSortDirection.Ascending;                    if (sdc.Count > 0)                    {                        SortDescription sd = sdc[0];                        sortDirection = (ListSortDirection)((((int)sd.Direction) + 1) % 2);                        sdc.Clear();                    }                    sdc.Add(new SortDescription(bindingProperty, sortDirection));                }            }        }


原创粉丝点击