테닝베어의 나날

[WPF] 데이터 바인딩 본문

IT/C# & WPF

[WPF] 데이터 바인딩

테닝베어 2015. 7. 3. 20:00

1. 데이터 바인딩이란??

 '데이터 바인딩'이란, 응용 프로그램의 UI의 요소와 소스코드의 데이터를 서로 연결하는 것이다. '데이터 바인딩'을 사용하고 객체의 값을 변경하면, 바인딩된 컨트롤 요소가 자동으로 업데이트된다.

 

 

 

2. 데이터 바인딩의 구조

데이터 바인딩 엔진은 바인딩 대상(UI, )와 바인딩 소스(객체) 사이에서, 이 둘을 연결하는 역할을 한다.

 

 

3. 데이터 바인딩의 흐름

 

 데이터 바인딩의 흐름은 총 4가지가 있다. 'OneWay', 'OneWayToSource', 'TwoWay', 'OneTime'

'OneWay'바인딩은 객체 속성이 변경된 경우 바인딩 요소(UI)가 자동으로 업데이트가 되지만, 그 반대가 불가능하다.

'OneWayToSource'바인딩은 'OneWay'바인딩과는 반대로 바인딩 요소가 변경될 때 객체 속성을 업데이트한다.

'TwoWay' 바인딩은 'OneWay'와 'OneWayToSource'의 합친 바인딩으로, 바인딩 요소가 변경되면 바인딩 소스가, 바인딩 소스가 변경되면 바인딩 요소가 변경되는 바인딩이다.

마지막으로 'OneTime'바인딩은 바인딩 소스가 바인딩 요소를 한 번 변경하지만, 이후 변경은 해당이 안되는 바인딩이다.

※ 'OneWay', 'TwoWay'바인딩에서 바인딩 소스 내용을 바인딩 대상에게 알리려면 'INotifyPropertyChanged'같은 인터페이스를 구현해주어야 한다.

 

 

4. 데이터 바인딩의 대상->소스 업데이트 시점

바인딩 대상에서 바인딩 소스를 업데이트를 해줄때 '바인딩 시점'이 중요하다. '포커스를 잃었을 후'인지, '입력할 때'인지, '어떤 버튼을 눌렀을때'인지로 바인딩 시점이 나뉘는데, 이는 다음과같은 표를 잘 참고하여 적재적소에 사용하면 되겠다.

 

 

 

 

[참고]

https://msdn.microsoft.com/ko-kr/library/ms752347(v=vs.110).aspx

Programming WPF: 사용자 경험(UX)을 바꾸는 기술 (이안 그리피스, 크리스 셀즈 지음/한빛미디어)

Comments