뷰에 데이터를 연결하여 화면에 데이터를 표시할때 DataBinding을 많이 사용합니다.
일반적인 예가 GridView 에 데이터를 연결하는 것입니다.
GridView가 아닌 일반 컨트롤, 예를들어 TextBox나 ComboBox에도 DataBinding을 사용할 수 있습니다.
첫번째 인자 Text는 TextBox의 속성 이름이고 두번째는 DataSource 그리고 마지막은 DataSource의 멤버 이름을 설정하면 됩니다.
즉 위 코드는 TextBox의 “Text” 속성에 Properties.Setting.Default의 “TcpServerPort”를 연결시킵니다.
이렇게 UI와 데이터를 연결시켜 놓으면 UI 변경 시 연결된 데이터도 함께 변경됩니다.
ComboBox의 경우 DataSource로 DataBinding을 한 후에 DispalyMember를 설정하여 화면에 표시할 데이터를 선택할 수 있습니다.
위 코드는 Insulation 리스트를 Code로 정렬한 뒤 ComboBox에는 Code를 표시하게 됩니다.
이렇게 뷰와 모델을 연결시켜 놓으면 데이터가 동기화되어 편리하게 개발을 할수 있습니다.
일반적인 예가 GridView 에 데이터를 연결하는 것입니다.
1 | this.radGridViewProject.DataSource = this.Projects; | cs |
1 | this.radTextBoxTcpServerPort.DataBindings.Add("Text", Properties.Settings.Default, "TcpServerPort"); | cs |
즉 위 코드는 TextBox의 “Text” 속성에 Properties.Setting.Default의 “TcpServerPort”를 연결시킵니다.
이렇게 UI와 데이터를 연결시켜 놓으면 UI 변경 시 연결된 데이터도 함께 변경됩니다.
1 2 3 4 5 6 7 8 9 | this.radTextBoxTcpServerPort.DataBindings.Add("Text", Properties.Settings.Default, "TcpServerPort"); /// DO SOMETHING(예: UI를 통한 TcpServerPort 수정) Properties.Settings.Default.Save(); DataBinding을 사용하지 않으면 UI를 통해 수정한 내용을 TcpServerPort에 적용 후에 저장해야 합니다. this.radTextBoxTcpServerPort.DataBindings.Add("Text", Properties.Settings.Default, "TcpServerPort"); /// DO SOMETHING(예: UI를 통한 TcpServerPort 수정) Properties.Settings.Default.TcpServerPort = Convert.ToInt32(this.radTextBoxTcpServerPort.Text); Properties.Settings.Default.Save(); | cs |
1 2 | (col as GridViewComboBoxColumn).DataSource = codes.ActiveInsulationCodes.OrderBy(o => o.Code); (col as GridViewComboBoxColumn).DisplayMember = "Code"; | cs |
이렇게 뷰와 모델을 연결시켜 놓으면 데이터가 동기화되어 편리하게 개발을 할수 있습니다.
댓글
댓글 쓰기