2017-04-17 122 views
0

我在嘗試找到排序可觀察集合的方法時遇到了一些麻煩。我目前正試圖通過使用按鈕中的事件來實時更改顯示可觀察集合的列表視圖,並且我明白我無法使用「排序」命令,但我能夠通過使用「OrderBy」命令。我的代碼目前如下:UWP Visual Studio 2017 ObservableCollection排序

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); 
    } 
} 

有誰知道一種方法來解決我的代碼,以便我可以訂購它的項目?

+0

您無法獲得OrderBy的工作方式? –

+0

請注意,在WPF中,使用'CollectionViewSource'完成這項工作是微不足道的。有關在UWP中實現類似的想法,請參閱https://stackoverflow.com/questions/34915276/uwp-observablecollection-sorting-and-grouping –

回答

3

的問題是:你是在類的數據類型搜索,你需要在集合中進行搜索,以便您可以採取的值,並把它們按順序......這是解決方案:

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

這對我有效。 希望你也是。