데이터바인딩은
UI와 데이터소스 사이에 데이터가 사용될 수 있도록 연결 하는 방법을 제공 한다.
즉, 사용자가 원하는 인터페이스와 그런 UI 의 표현의 일부가 될 수 있는 데이터들
예를 들어 제품의 이름이라든지, 수량이라든지 같은 것들을 연결
해 준다는 것이다.

이런한 데이터바인딩이라는 녀석 때문에 다음의 것들이 가능하게 된다.
사용자의 인터페이스를 표현하는 부분(작업)과 그 인터페이스의 일부를 사용되는
데이터 부분(작업)을 각각 분리
시켜 준다는 것이다.

이러한 분리가 좋고 편리하다는 것이 아직 피부로 느껴 지지는 않지만 (경력이 부족해서 그런것 같다.)
일단 코드의 양과 개발자가 개발에 필요한 여러 수고 들을 줄여 주는것 같기는 하다. (일단 그렇게 생각하자)


데이터바인딩 일반에 관하여 말하였다. 그럼 이제 데이터바인딩의 개념에 대해서 살펴보자
일단 데이터바인딩의 아주 기본적인 개념은 다음과 같다,

먼저 사용자 인터페이스(UI)의 특정 컨트롤(버튼, 텍스트박스 등)중에 데이터를 표현하고 싶은 컨트롤이 있을 것이고,
그 컨트롤 중의 text나 content 같은 속성들에 데이터를 표현하고 싶은 컨트롤의 속성값이 있을 것이다. 그리고 그 표현
의 데이터가 되는 소스 가 있을 것이다.

여기서, 데이터를 표현 하고 싶은 컨트롤의 속성값이 바인딩 타겟이 되는 것이고,
특정 컨트롤의 속성 값으로 표현되는 데이터를 바로 바인딩 소스라 할 수 있다.
데이터 바인딩 이란 이 바인딩 타겟과 바인딩 소스 사이의 연결이라 할 수 있을 것이다.

말 보다 그림으로 한번 보면, 다음과 같다.




어찌 보면 이그림도 어려워 보인다. 그냥 이렿게 이해하자 그림의 윗부분의 Control과 Property가 바로 바인딩타겟
되는 것이고, 아래쪽의 Data Item, Property과 바인딩소스가 되는 것이다.
그리고 이 둘의 연결이 바로 바인딩 이라는 것이다.

이해를 돕기 위해 간단한 예를 살펴보자



위와 같은 사용자 인터페이스 (UI) 가 있다고 가정 하자, 그리고 이 UI의 XMAL 코드는 다음과 같다고 하자.



<TextBox Text="{Binding Dept}" />                // 요녀석이 부서 라는 TextBlock 옆의 TextBox 이다.
<TextBox Text="{Binding Name}" />             // 요녀석은 이름 이라는 TextBlock 옆의 TextBox 이다.


여기서 <TextBox> 라는 컨트롤의 Text 라는 속성이 바로 추후 하게될 바인딩타겟이 되는것이다.
대충 예상 해보면 위의 TextBox라는 빈 흰칸에 무엇인가 써질것 같다. 일단 계속 보자


String Dept = "솔루션개발부";                       //  부서 이름
String Name = "홍길동";                             //   근로자 이름


여기서 위의 두 String 타입의 변수 Dept, Name 이 사용자 인터페이스에서 정의한 부서, 이름에 들어갈
data 즉, 바인딩소스
가 되는 것이다.
바인딩소스와 바인딩타겟 과의 바인딩 방법과 문법은 나중에 생각하고 일단은 바인딩이라는 개념과
느낌을 알도록 하자.
바인딩이 완료되 UI를 보면 아래와 같다.






데이터바인딩이라는 개념에 대해서 솔직히 나도 자세히는 모르겠다. 하지만 자체적으로 이해한 내용을 바탕으로
글을 올렸다. (그리고 이 글을 작성하는 현 시점, 조금 취해 있다.)
수정이 필요하거나 틀린 부분이 있으면 댓글을 달아 주세용
Posted by JMSOFT

댓글을 달아 주세요

티스토리 툴바