WPF C# - DataGrid
WinForm 프로그램과 달리
WPF는 화면구성과 코드가 분리되어 있다
MVVM이라고 한다나 ...
그래서 윈폼과 달리 Datagrid의 각 행및 열에 직접 접근하기가 까다로움
원칙적인 사용법은 DataGrid.ItemSource 에 소스를 바인딩하고
- 바인딩 된 소스를 수정하면
- 표시를 담당한 XAML이 화면 업데이트를 한다
그래서 인터넷의 대부분의 강좌는 데이터 클래스를 만들고
거기에 데이터를 넣은 다음 DataGrid.ItemSource 에 바인딩한다
그런데
몇개 안되거나 동적으로 할당하려면 어케하나 ???
이것 때문에 한 일주일을 구글링 ...
방법은
DataTable dt;
DataRow dr;
string[] str = new string[4];
dt = new DataTable("emp");
DataColumn dc1 = new DataColumn("Factors", typeof(string));
DataColumn dc2 = new DataColumn("Non_Compliant", typeof(string));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
datagrid_.ItemsSource = dt.DefaultView;
int k = 0;
dr = dt.NewRow();
Label label = new Label();
label.Height = 28;
label.Width = 100;
label.HorizontalAlignment = HorizontalAlignment.Center;
label.VerticalAlignment = VerticalAlignment.Center;
label.Content = str[j];
dr[k] = label.Content;
dt.Rows.Add(dr);
datagrid_.ItemsSource = dt.DefaultView;
WPF DataGrid Practical Examples
http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples
구조나 원리는
Guide to WPF DataGrid formatting using bindings
http://www.codeproject.com/Articles/683429/Guide-to-WPF-DataGrid-formatting-using-bindings