2017-04-17 1 views
0

Ich habe ein wenig Mühe, einen Weg zu finden, eine beobachtbare Sammlung zu sortieren. Ich versuche gerade, diesen Prozess zu testen, indem ich ein Ereignis von einem Knopf verwende, der gedrückt wird, um in Echtzeit eine Listenansicht zu ändern, die die beobachtbare Sammlung zeigt, und ich verstehe, dass ich den Befehl "Sortieren" nicht verwenden kann der Befehl "OrderBy". Mein Code ist derzeit wie folgt:UWP Visual Studio 2017 ObservableCollection Sortierung

public sealed partial class MainPage : Page 
{ 

    ObservableCollection<DataType> collection = new ObservableCollection<DataType>(); 

    public MainPage() 
    { 
     this.InitializeComponent(); 

     setupCollection(); 
    } 

    public void setupCollection() 
    { 
     collection.Add(new DataType { times = "08:30" }); 
     collection.Add(new DataType { times = "00:30" }); 
     collection.Add(new DataType { times = "12:30" }); 
     collection.Add(new DataType { times = "23:30" }); 
     collection.Add(new DataType { times = "18:30" }); 
     collection.Add(new DataType { times = "15:30" }); 
     collection.Add(new DataType { times = "06:30" }); 
     collection.Add(new DataType { times = "05:30" }); 
     collection.Add(new DataType { times = "14:00" }); 
     collection.Add(new DataType { times = "12:00" }); 
     listview.ItemsSource = collection; 
    } 

    public class DataType 
    { 
     public string times { get; set; } 
    } 

    private void Button_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     collection = new ObservableCollection<DataType>(from i in DataType orderby i.times select i); 
     //collection.OrderBy(i.DataType > i.times); 
    } 
} 

Kennt jemand eine Möglichkeit, meinen Code zu beheben, damit ich die Elemente darin bestellen kann?

+0

In welcher Weise kann OrderBy nicht funktionieren? –

+0

Beachten Sie, dass dies in WPF mit 'CollectionViewSource' einfach zu bewerkstelligen wäre. Weitere Informationen zum Erreichen ähnlicher Ergebnisse in UWP finden Sie unter https://stackoverflow.com/questions/34915276/uwp-observablecollection-sorting-and-grouping –

Antwort

3

Das Problem ist: dass Sie in der Klasse Datentyp suchen, können Sie in der Sammlung suchen müssen, so dass Sie die Werte übernehmen und sie in Ordnung bringen ... Hier ist die Lösung:

collection = new ObservableCollection<DataType>(
    from i in collection orderby i.times select i); 

Das hat für mich funktioniert. Hoffnung für dich auch.