0

: 다음과 같아야 내 ListBox 항목에서자동으로 정렬 목록 상자 항목 (A Z 또는 1-9 현명한 시리얼) 내 WP에 <code>ListBox</code>이 보이는 8.1 실버 라이트 응용 프로그램이

<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> 

를 : 15

  1. 항목 1
  2. 항목 2
  3. .....

그러나 현재 그것은 1,2,3,4의 순서가 아닙니다 ... 대신 항목이 추가 된 순서대로입니다.

ListBox 항목을 자동으로 직렬화하려고합니다. 어떻게이 일을 성취 할 수 있습니까?

답변

2

직렬화하기 전에 목록이나 배열을 정렬하려면 두 가지 솔루션을 사용할 수 있습니다.

배열에는 배열의 항목을 적절한 위치에 정렬 (인스턴스 자체의 내용 정렬)하는 고정 Array.Sort 메서드가 있습니다.

목록 및 기타 모음의 경우 LINQ의 OrderBy 확장 방법을 사용할 수 있습니다.

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

참고 일본어 list가 그대로 유지되도록 상기 ToList() 확장 메소드의 결과는 새로운 인스턴스이다.

+1

당신은 광석 세부 사항을 제공 할 수 있습니까? –

+0

나는 처음으로 목록 상자와 함께 작업하므로 세부 사항을 제공하십시오. –

+1

목록 상자에 표시되는 데이터를 정렬해야하기 때문에 기본적으로 목록 상자 자체와 관련이 없습니다 . 내가 게시 한 코드는 정렬 된 순서로 파일에 저장되도록 데이터를 직렬화하기 위해 사용할 수 있습니다. sortedList의 데이터를 목록 상자에 넣으면 UI에서도 정렬됩니다. –