我在文本框上绑定了一个名为TestList的ObservableCollection<KeyValuePair<int, String>>(),我想按int对集合进行排序。我尝试了以下操作,但未对集合进行排序:

new ObservableCollection<KeyValuePair<int, string>>(
                 TestList .Where(p => p.Key > 0)
                 .GroupBy(p => p.Key)
                 .Select(grp => grp.First())
                 .OrderBy(p => p.Key)
                 );


如何分类收藏?绑定仍然有效吗?

编辑(也不起作用):

public ObservableCollection<KeyValuePair<int, String>> TestList
{
    get { return testList; }
    set {
        testList = value;
        NotifyPropertyChanged("TestList");
    }
}

public void Test(int index)
{
    TestList.RemoveAt(index);
    TestList = new ObservableCollection<KeyValuePair<int, string>>(TestList.OrderBy(p => p.Key));
}


和GUI:

<TextBox Grid.Column="0" IsReadOnly="True"
Text="{Binding Path=Value , Mode=OneWay}" />

最佳答案

您不必分组。您只需要简单的订购即可。

TestList.OrderBy(p => p.Key)

10-06 05:05