일반 데이터를 저장하는 데 사용할 DataGridView가 있습니다. 모든 정렬 등을 내부적으로 처리 할 수 있도록 DataGridView 클래스에 형식화 된 데이터 목록을 유지하려고합니다. 하지만 InitializeData 메서드가 호출 될 때까지 데이터 형식을 알 수 없으므로 DataGridView에 형식을 설정하지 않아도됩니다.제네릭 데이터를 비 generic 클래스에 저장
public class MyDataGridView : DataGridView {
private List<T> m_data;
public InitializeData<T>(List<T> data) {
m_data = data;
}
... internal events to know when the datagrid wants to sort ...
m_data.Sort<T>(...)
}
이것은 가능합니까? 그렇다면 어떻게?
Sort 메서드를 호출하는 방법을 확장 할 수 있다면 도움이됩니다 (예 :어떤 과부하가 부르고, 매개 변수는 어디에서 왔는지. – kvb
정렬 메서드는 리플렉션을 사용하여 목록을 정렬하는 GenericComparer를 사용합니다. 비교 자는 정렬 할 속성의 문자열 값과 오름차순 또는 내림차순의 SortOrder를 사용합니다. 데이터 격자보기 열은 열 속성과 연관된 속성을 가지므로 열을 클릭하면 열 정보에서 속성 및 정렬 순서를 추출합니다. – ericmck