'2010/07/21'에 해당되는 글 1건

  1. 2010.07.21 동적으로 컨트롤 생성하기


시나리오

DB에서 어떠한 값들을 가져오는데

가져올때 COUNT에 맞춰서 컨트롤을 증가시켜서 새로운 창을 띄운다.


Crop_Temper();  //쿼리에서 값 가져오기
ColumnDefine(); //열 생성
RowDefine();    //로우 생성
AddLine();      //동적으로 컨트롤 생성
ButtonAdd();    //버튼생성



1.
Crop_Temper() 에서 어떠한 컨트롤 생성할때 필요한 값들을 가져온다. 여기에서 가져온 COUNT만큼 Row의

갯수를 증가시킬것이다.


2.
        private void ColumnDefine() //열을 증가시킨다.
        {          
            ColumnDefinition column1 = new ColumnDefinition();
            column1.MinWidth = 100;
            ColumnDefinition column2 = new ColumnDefinition();
            column2.MinWidth = 150;

            MainGrid.ColumnDefinitions.Add(column1);
            MainGrid.ColumnDefinitions.Add(column2);

        }

3.
        private void RowDefine() //행을 추가한다.
        {
            for (int i = 0; i <= Temper_List.Temper_Name.Count; i++)  //DB에서 가져온 값갯수만큼 행을 만든다.
            {
                RowDefinition row1 = new RowDefinition();
                row1.MinHeight = 30;                               
                MainGrid.RowDefinitions.Add(row1);               
            }           
        }

4.
        private void AddLine() //입력창 추가
        {
            for (int i = 0; i < Temper_List.Temper_Name.Count; i++) 
            {       
//여기서는 행과 열에 맞게 라벨과 텍스트박스를 추가시킨다.

                Label lbTest1 = new Label();
                lbTest1.Content = Temper_List.Temper_Name[i].ToString();
                lbTest1.FontSize = 12;
                lbTest1.HorizontalAlignment = HorizontalAlignment.Center;
                lbTest1.VerticalAlignment = VerticalAlignment.Center;   

                Grid.SetRow(lbTest1, i);
                Grid.SetColumn(lbTest1, 0);
                MainGrid.Children.Add(lbTest1);

                TextBox tbTest1 = new TextBox();
                tbTest1.TextAlignment = TextAlignment.Center;
                tbTest1.VerticalContentAlignment = VerticalAlignment.Center;
                Grid.SetRow(tbTest1, i);
                Grid.SetColumn(tbTest1, 1);
               MainGrid.Children.Add(tbTest1);
            }           
        }

5. 버튼도 위와 같은 식으로 추가한다.



위와같이 했다면 아래와 같이 창이 뜨게 될것이다.
DB에서 가져오는 값들이 다름에 따라 창들도 동적으로 변한다.


'.NET > WPF' 카테고리의 다른 글

WPF에서 사용자정의컨트롤 쓰기  (0) 2010.04.26
미디어플레이어 (동기화해결)  (0) 2010.04.22
WPF에서 미디어 플레이어 만들기  (1) 2010.04.19
사용자지정과 사용자정의 컨트롤 차이  (0) 2010.04.18
의존속성  (0) 2010.04.16
Posted by 아몰라
이전버튼 1 이전버튼