自动排序 ListBox 项目(A 到 Z 或 1 到 9 串行)
Automatically Sort ListBox Items (A to Z or 1 to 9 serial wise)
我的 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
中,项目应该如下所示:
- item1
- item2
- 至 15.......
但是目前它不是按照 1,2,3,4... 的顺序排列的,而是按照添加项目时的顺序排列的。
我希望 ListBox
项自动序列化。如何实现?
如果要在序列化之前对列表或数组进行排序,可以使用两种不同的解决方案。
数组有一个静态的 Array.Sort
方法,可以就地对数组的项目进行排序(对实例本身的内容进行排序)。
对于列表和其他集合,您可以使用 LINQ 的 OrderBy
扩展方法。
var sortedList = list.OrderBy(
item => item.PropertyToOrderBy )
.ToList();
请注意,原始 list
保持不变,ToList()
扩展方法的结果是一个新实例。
我的 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
中,项目应该如下所示:
- item1
- item2
- 至 15.......
但是目前它不是按照 1,2,3,4... 的顺序排列的,而是按照添加项目时的顺序排列的。
我希望 ListBox
项自动序列化。如何实现?
如果要在序列化之前对列表或数组进行排序,可以使用两种不同的解决方案。
数组有一个静态的 Array.Sort
方法,可以就地对数组的项目进行排序(对实例本身的内容进行排序)。
对于列表和其他集合,您可以使用 LINQ 的 OrderBy
扩展方法。
var sortedList = list.OrderBy(
item => item.PropertyToOrderBy )
.ToList();
请注意,原始 list
保持不变,ToList()
扩展方法的结果是一个新实例。