我在文本框上绑定了一个名为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)