시나리오
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 |