2015-09-01 33 views
0

我在silverlight應用程序中使用telerik Radgridview。在那裏,我將itemsource與observable集合綁定在一起。每當集合發生更改時,radgridview.ItemSource都會綁定到可觀察集合。 Everythings正常工作,但每當項目被添加到收集,它只是附加在網格中。我想在添加後對集合進行排序。有沒有簡單的解決辦法?在Radgridview中排序可觀察的集合

回答

0

取決於您的實現細節,但我認爲您應該可以在LINQ和CollectionChanged事件中使用OrderBy處理大部分情況。您只需重新訂閱該活動。下面是在快速測試中爲我工作的代碼:

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