在Radgridview中排序可观察对象集合

本文关键字:观察 对象 集合 排序 Radgridview | 更新日期: 2023-09-27 18:10:48

我在silverlight应用程序中使用telerik Radgridview。在这一点上,我绑定了itemsource与可观察集合。每当集合被更改时,radgridview。ItemSource被绑定到可观察对象集合。一切都很好,但每当项目被添加到集合,它只是附加在网格中。我想对添加后的集合进行排序。有什么简单的解决办法吗?

在Radgridview中排序可观察对象集合

取决于您的实现细节,但我认为您应该能够在LINQ和CollectionChanged事件中的order大多数情况下做到这一点。你只需要重新订阅这个活动。以下是在快速测试中为我工作的代码:

public class BindingViewModel : ViewModelBase
{
    public BindingViewModel()
    {
        Items = new ObservableCollection<int>();
        Items.CollectionChanged += Items_CollectionChanged;
    }
    public void Add(int value)
    {
        Items.Add(value);
    }
    private void Items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
    {
        Items = new ObservableCollection<int>(Items.OrderBy(x => x));
        Items.CollectionChanged += Items_CollectionChanged;
    }
    private ObservableCollection<int> _items;
    public ObservableCollection<int> Items
    {
        get { return _items; }
        set
        {
            _items = value;
            OnPropertyChanged("Items");
        }
    }
}