Computers/Language 2015. 7. 4. 10:59




WPF C# - DataGrid


WinForm 프로그램과 달리

WPF는 화면구성과 코드가 분리되어 있다

MVVM이라고 한다나 ...




그래서 윈폼과 달리 Datagrid의 각 행및 열에 직접 접근하기가 까다로움

원칙적인 사용법은 DataGrid.ItemSource 에 소스를 바인딩하고

- 바인딩 된 소스를 수정하면

- 표시를 담당한 XAML이 화면 업데이트를 한다


그래서 인터넷의 대부분의 강좌는 데이터 클래스를 만들고

거기에 데이터를 넣은 다음 DataGrid.ItemSource 에 바인딩한다


그런데

몇개 안되거나 동적으로 할당하려면 어케하나 ???

이것 때문에 한 일주일을 구글링 ...


방법은

http://codereview.stackexchange.com/questions/86664/insert-string-array-as-label-content-in-datagrid-row-through-radio-button


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

















posted by 털보네i

댓글을 달아 주세요