0

我的ListBoxWP 8.1 Silverlight 应用程序有一个如下所示:

<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. 项目1
  2. 项目2
  3. 到 15……

但是目前它不是按 1、2、3、4 的顺序...而是按添加项目的时间顺序。

我希望这些ListBox项目自动序列化。如何做到这一点?

4

1 回答 1

2

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

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

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

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

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

于 2016-11-22T08:10:29.237 回答