반응형
DataTable로 바인딩이 되어있으면 헤더쪽을 클릭하면 default설정으로 화살표(arrow)가 나오고, 자동으로 내림차순 , 오름차순 정렬이 된다. 리스트로 바인딩이 되어있는 DataGridView의 경우, 자동 내림차순 오름차순 정렬이 되지 않기 때문에 List형태를 DataTable형태로 변환해줘야 한다.
public DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
dataTable.Columns.Add(prop.Name);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
return dataTable;
}
반응형
'Language > C#' 카테고리의 다른 글
[C#] Issue 해결 과정 Summary (0) | 2022.07.06 |
---|---|
[Error] System.Windows.Forms.DataGridViewCell.Value.get returned null (0) | 2022.07.05 |
바인딩 된 datagridview에서 마우스 드래그로 컬럼 순서 변경 (0) | 2022.07.04 |
[C#] control invalidate, refresh, update 차이 (0) | 2022.06.30 |
[int / int] 캐스팅 (0) | 2022.06.28 |