는 바인딩에 정렬을 구현하는 빠른 방법의 상단에있는 네임 스페이스를 포함하는 것을 잊지 마십시오 인수로 constructor that takes a backing IList< T >을 사용하는 것입니다. 보조물로 List<T>
을 사용하고 Sort
기능을 사용할 수 있습니다. 목록에 대한 변경이는 바인딩에 반영되도록 목록에 의해 뒷받침되고는 바인딩을 만들 수있는 documentation
사용이는 바인딩 당
. 당신의 MyClass에 다음과 같이 정의 된 경우
는 :
internal class MyClass
{
public MyClass(string name, Int32 num)
{
this.Name = name;
this.Num = num;
}
public string Name {get; set;}
public Int32 Num {get; set;}
}
다음은 Num
필드에 정렬 같은 것을 할 수 있습니다.
private List<MyClass> backing;
private BindingList<MyClass> bl;
private void InitializeBindingList()
{
backing = new List<MyClass>();
bl = new BindingList<MyClass>(backing);
bl.Add(new MyClass("a", 32));
bl.Add(new MyClass("b", 23));
bl.Add(new MyClass("c", 11));
bl.Add(new MyClass("d", 34));
bl.Add(new MyClass("e", 53));
}
private void SortBindingList()
{
backing.Sort((MyClass X, MyClass Y) => X.Num.CompareTo(Y.Num));
// tell the bindinglist to raise a list change event so that
// bound controls reflect the new item order
bl.ResetBindings();
}
}
당신은 BindingList
가 변경된 것을 모든 바운드 컨트롤을 통지하고 컨트롤을 업데이트 할 백업 목록을 정렬 한 후 BindingList.ResetBindings 메소드를 호출 할 필요가있다.
직접 정렬을 지원하지 않는다는 것은 무엇을 의미합니까? –
나는 list.Sort()를 사용할 수 없다는 것을 의미합니다. – Alexander
http://stackoverflow.com/questions/1063917/bindinglistt-sort-to-behave-like-a-listt-sort – MindingData