自动排序ListBox项目(A到Z或1到9顺序)

时间:2016-11-22 07:52:06

标签: c# sorting windows-phone-8.1 listboxitems windows-phone-silverlight

我的WP 8.1 Silverlight应用程序上有ListBox,如下所示:

<StackPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Top">                
    <ListBox x:Name="FavoriteListBox" Visibility="Collapsed" 
             SelectionChanged="FavoriteListBox_SelectionChanged"
             HorizontalAlignment="Stretch"
             VerticalAlignment="Top" Opacity="1"
             Background="{StaticResource PhoneBackgroundBrush}" Foreground="{StaticResource PhoneForegroundBrush}"
             Height="300" Width="250">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Visibility="Visible" x:Name="FavoriteListBoxTextBlock"  
                       FontSize="35" Foreground="Black" Text="{Binding AnswerName}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</StackPanel>

在我的ListBox中,项目应如下所示:

  1. ITEM1
  2. ITEM2
  3. 到15 .....
  4. 但是目前它不是1,2,3,4的顺序...而是按照添加项目的顺序。

    我希望ListBox项自动序列化。如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

如果要在序列化之前对列表或数组进行排序,可以使用两种不同的解决方案。

数组有一个静态Array.Sort方法,用于对数组中的项进行排序(对实例本身的内容进行排序)。

对于列表和其他集合,您可以使用LINQ的OrderBy扩展方法。

var sortedList = list.OrderBy( 
    item => item.PropertyToOrderBy )
    .ToList();

请注意,原始list保持不变,ToList()扩展方法的结果是新实例。