我有以下课程:
[DataContract]
public class Pair<TKey, TValue> : INotifyPropertyChanged, IDisposable
{
public Pair(TKey key, TValue value)
{
Key = key;
Value = value;
}
#region Properties
[DataMember]
public TKey Key
{
get
{ return m_key; }
set
{
m_key = value;
OnPropertyChanged("Key");
}
}
[DataMember]
public TValue Value
{
get { return m_value; }
set
{
m_value = value;
OnPropertyChanged("Value");
}
}
#endregion
#region Fields
private TKey m_key;
private TValue m_value;
#endregion
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
protected void …Run Code Online (Sandbox Code Playgroud) 我有以下代码来重新订购ObservableCollection<T>集合:
list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我不喜欢涉及"新"的事实.有没有办法可以在ObservableCollection<T>不创建新集合的情况下更改集合的内部元素顺序?
谢谢,
我有一个可观察的集合,我用linq对它进行排序.一切都很好,但我遇到的问题是如何对实际的可观察集合进行排序?相反,我刚刚结束了与一些IEnumerable的事情,我最终结算的收集和添加的东西回.这不利于性能.有谁知道更好的方法吗?
假设我有ObservableCollection员工类
public ObservableCollection<Employee> employeeCollection = new ObservableCollection<Employee>();
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public double MobileNumber { get; set; }
public string City { get; set; }
public int Age { get; set; }
public Employee() {}
}
Run Code Online (Sandbox Code Playgroud)
现在我试图ObservableCollection通过用户从组合框中进行适当的选择来对("employeeCollection")进行排序[它将... ...排序FirstName ... .Sort By MobileNumber等...]
并且需要返回已排序的可观察集合....
意味着它不应该是"var"的形式
ObservableCollection<Employee>
所以我可以将它归还给...的“ItemsSource”财产“ItemsControl”
谢谢……
我试过了:
Persons = from i in Persons orderby i.Age select i;
Run Code Online (Sandbox Code Playgroud)
但我无法将Linqs转换System.Linq.IOrderedEnumerable为ObservableCollection<Person>.