본문 바로가기
백엔드기술/개발언어

데이터 바인딩 정복 1

by RevFactory 2008. 12. 11.
A를 B에 바인딩을 시킨다는 것은 즉, A와 B를 묶는다는 개념이다.
이와 마찬가지로 데이터 바인딩은 데이터를 어떠한 곳에 묶어놓는 것인데, 텍스트 박스에 묶으면 텍스트 박스에 데이터가 표시되고
리스트에 묶으면 리스트에 데이터가 표시되는 것이다.

간단한 예제로 TextBlock에 문자를 바인딩 시키는 예제를 보자.

1. XAML에 TextBlock 생성하고 이름을 준다.
     <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock x:Name="MyText" />
    </Grid>

2. Load 이벤트를 추가시킨다.
 Loaded="UserControl_Loaded"
*UserControl 태그 속에서 Loaded를 치고 엔터치면 대화상자가 나오는데 여기서 새 이벤트 처리기를 선택하면 자동으로 생성된다.


3. XAML 비하인드 코드(.cs)에서 아래와 같은 코드를 삽입한다.
 - using 추가
 using System.Windows.Data;

 - 페이지 Load시 바인딩 되도록 구현

         private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            string s = "안녕하세요.";
            Binding b = new Binding();
            b.Mode = BindingMode.OneTime;
            b.Source = s;

            MyText.SetBinding(TextBlock.TextProperty, b);
        }



위의 예제에서는 Binding 클래스를 이용하여 TextBlock에 문자열을 바인딩하고 있다.
여기서 바인딩의 모드(b.Mode) 를 짚어보고 넘어가자.

 Mode 설명
 TwoWay 대상 속성이나 소스 속성중 하나가 변경되면 자동으로 업데이트한다. 편집 가능한 폼이나 대화형 UI등에 유용하다 
 OneWay  소스 속성이 변경될 때 대상 속성을 업데이트 한다. 대상 속성의 변경 내용을 모니터링 할 필요가 없을 경우 이 방법을 쓰면 TwoWay보다 오버헤드를 줄일 수 있다
 OneTime  응용 프로그램이 시작되거나 DataContext가 변경될때만 대상 속성을 업데이트 한다.

'백엔드기술 > 개발언어' 카테고리의 다른 글

3D 기초 강좌 - 1  (0) 2009.02.06
XAML (Extensible Application Markup Language) 개요  (0) 2008.12.02
[예제] 객체 끌어 놓기  (0) 2008.12.01