C# UWP Visual Studio 2017可观测收集排序

C# UWP Visual Studio 2017可观测收集排序,c#,uwp,observablecollection,visual-studio-2017,C#,Uwp,Observablecollection,Visual Studio 2017,我在试图找到一种方法对一个可观察的集合进行排序时遇到了一点困难。我目前正试图通过使用按钮中的事件来测试这个过程,该按钮被按下以实时更改显示可观察集合的listview,我知道我不能使用“Sort”命令,但我能够通过使用“OrderBy”命令来实现这一点。我目前的代码如下: public sealed partial class MainPage : Page { ObservableCollection<DataType> collection = new Observab

我在试图找到一种方法对一个可观察的集合进行排序时遇到了一点困难。我目前正试图通过使用按钮中的事件来测试这个过程,该按钮被按下以实时更改显示可观察集合的listview,我知道我不能使用“Sort”命令,但我能够通过使用“OrderBy”命令来实现这一点。我目前的代码如下:

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);
    }
}
公共密封部分类主页面:第页
{
ObservableCollection集合=新的ObservableCollection();
公共主页()
{
this.InitializeComponent();
setupCollection();
}
公共集合()
{
Add(新数据类型{times=“08:30”});
Add(新数据类型{times=“00:30”});
Add(新数据类型{times=“12:30”});
Add(新数据类型{times=“23:30”});
Add(新数据类型{times=“18:30”});
Add(新数据类型{times=“15:30”});
Add(新数据类型{times=“06:30”});
Add(新数据类型{times=“05:30”});
Add(新数据类型{times=“14:00”});
Add(新数据类型{times=“12:00”});
listview.ItemsSource=集合;
}
公共类数据类型
{
公共字符串时间{get;set;}
}
私有无效按钮(对象发送器,TappedRoutedEventArgs e)
{
collection=新的ObservableCollection(从数据类型orderby i.times中的i选择i);
//collection.OrderBy(i.DataType>i.times);
}
}

有人知道如何修复我的代码,以便我可以对其中的项目进行排序吗?

问题是:您正在类数据类型中搜索,您需要在集合中搜索,以便获取值并将其排序。。。以下是解决方案:

collection = new ObservableCollection<DataType>(
    from i in collection orderby i.times select i);
collection=新的ObservableCollection(
从集合顺序中的i开始按i.times选择i);
这对我很管用。
也希望如此。

问题是:在类数据类型中搜索时,需要在集合中搜索,以便获取值并将其按顺序排列。。。以下是解决方案:

collection = new ObservableCollection<DataType>(
    from i in collection orderby i.times select i);
collection=新的ObservableCollection(
从集合顺序中的i开始按i.times选择i);
这对我很管用。
希望您也能这样做。

简单易行的方法:

ConceptItems = new ObservableCollection<DataConcept>(ConceptItems.OrderBy(i => i.DateColumn));
ConceptItems=新的ObservableCollection(ConceptItems.OrderBy(i=>i.DateColumn));

简单易行的方法:

ConceptItems = new ObservableCollection<DataConcept>(ConceptItems.OrderBy(i => i.DateColumn));
ConceptItems=新的ObservableCollection(ConceptItems.OrderBy(i=>i.DateColumn));

您如何才能让OrderBy正常工作?请注意,在WPF中,使用
CollectionViewSource
来完成这一点非常简单。有关在UWP中实现类似功能的想法,请参见以何种方式不能让OrderBy正常工作?请注意,在WPF中,使用
CollectionViewSource
实现这一点非常简单。有关在UWP中实现类似功能的想法,请参阅