我的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,2,3,4的顺序...而是按照添加项目的顺序。
我希望ListBox
项自动序列化。如何实现这一目标?
答案 0 :(得分:2)
如果要在序列化之前对列表或数组进行排序,可以使用两种不同的解决方案。
数组有一个静态Array.Sort
方法,用于对数组中的项进行排序(对实例本身的内容进行排序)。
对于列表和其他集合,您可以使用LINQ的OrderBy
扩展方法。
var sortedList = list.OrderBy(
item => item.PropertyToOrderBy )
.ToList();
请注意,原始list
保持不变,ToList()
扩展方法的结果是新实例。