相关疑难解决方法(0)

通过C#对ObservableCollection <string>进行排序

我在下面ObservableCollection<string>.我需要进行排序按字母顺序这一点.

private ObservableCollection<string> _animals = new ObservableCollection<string>
{
    "Cat", "Dog", "Bear", "Lion", "Mouse",
    "Horse", "Rat", "Elephant", "Kangaroo", "Lizard", 
    "Snake", "Frog", "Fish", "Butterfly", "Human", 
    "Cow", "Bumble Bee"
};
Run Code Online (Sandbox Code Playgroud)

我试过了_animals.OrderByDescending.但我不知道如何正确使用它.

_animals.OrderByDescending(a => a.<what_is_here_?>);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# sorting observablecollection

46
推荐指数
6
解决办法
11万
查看次数

订购ObservableCollection <T>而不创建新的

我有以下代码来重新订购ObservableCollection<T>集合:

list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但我不喜欢涉及"新"的事实.有没有办法可以在ObservableCollection<T>不创建新集合的情况下更改集合的内部元素顺序?

谢谢,

c#

21
推荐指数
4
解决办法
2万
查看次数

如何对ObservableCollection进行排序

我有一个ObservableCollection和一个WPF UserControl是Databound.Control是一个图表,显示ObservableCollection中每个BarData类型项的垂直条.

ObservableCollection<BarData>

class BarData
{
   public DateTime StartDate {get; set;}
   public double MoneySpent {get; set;}
   public double TotalMoneySpentTillThisBar {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

现在我想基于StartDate对ObservableCollection进行排序,以便BarData将在集合中按StartDate的顺序递增.然后我可以像这样计算每个BarData中TotalMoneySpentTillThisBar的值 -

var collection = new ObservableCollection<BarData>();
//add few BarData objects to collection
collection.Sort(bar => bar.StartData);    // this is ideally the kind of function I was looking for which does not exist 
double total = 0.0;
collection.ToList().ForEach(bar => {
                                     bar.TotalMoneySpentTillThisBar = total + bar.MoneySpent;
                                     total = bar.TotalMoneySpentTillThisBar; 
                                   }
                            );
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用ICollectionView对数据进行排序,过滤数据但不会改变实际的集合.我需要对实际集合进行排序,以便我可以为每个项目计算TotalMoneySpentTillThisBar.它的价值取决于集合中的项目顺序.

谢谢.

sorting wpf observablecollection icollectionview

16
推荐指数
3
解决办法
3万
查看次数

INotifyCollectionChanged:添加项目不会出现在给定索引'0'

我正在制作一个可观察的课程.Add方法工作正常.但后来我试图调用Remove()方法我得到这个错误:

"添加的项目不会出现在给定的索引'0'"

但是我将NotifyCollectionChangedAction枚举设置为Remove,如下面的代码所示.

    public class ObservableOrderResponseQueue : INotifyCollectionChanged, IEnumerable<OrderResponse>
{
    public event NotifyCollectionChangedEventHandler CollectionChanged;
    private List<OrderResponse> _list = new List<OrderResponse>();


    public void Add(OrderResponse orderResponse)
    {
        this._list.Add(orderResponse);
        if (CollectionChanged != null)
        {
            CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, orderResponse, 0));
        }
    }

    public void RemoveAt(int index)
    {
        OrderResponse order = this._list[index];
        this._list.RemoveAt(index);
        if (CollectionChanged != null)
        {
            CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, order, index));
        }
    }

    public void Remove(OrderResponse orderResponse)
    {
        var item = _list.Where(o => o.OrderDetail.TrayCode == orderResponse.OrderDetail.TrayCode).FirstOrDefault();
        int index = _list.IndexOf(item);

        this._list.RemoveAt(index);
        if (CollectionChanged …
Run Code Online (Sandbox Code Playgroud)

c# wpf

7
推荐指数
1
解决办法
6368
查看次数

如何按字母顺序对 ObservableCollection 进行排序?

我需要ObservableCollection按字母顺序对after populatior 进行排序,假设里面有这个模型:

class Nation
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的ObservableCollection

ObservableCollection<Nation> ob = new ObservableCollection<Nation>();
Run Code Online (Sandbox Code Playgroud)

假设在我里面我有这个订单的三个项目:

  1. 英国
  2. 阿富汗
  3. 意大利

我需要按字母顺序排序,所以我尝试:

ob.OrderBy(c => c.Name);
Run Code Online (Sandbox Code Playgroud)

但我没有效果,应该是:

  1. 阿富汗
  2. 英国
  3. 意大利

我做错了什么?

c# sorting

1
推荐指数
1
解决办法
7889
查看次数

标签 统计

c# ×4

sorting ×3

observablecollection ×2

wpf ×2

icollectionview ×1