SlideShare a Scribd company logo
1 of 11
데이터 바인딩 첫번째~
(DATA BINDING)
www.topcredu.co.kr 이종철
•
•
•
•
•
MainWindow.xaml
<Window x:Class="BindingLabelToScroll.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Label, ScrollBar 데이터 바인딩" Height="350" Width="525">
<StackPanel >
<!-- Source. -->
<ScrollBar Name="scrollbar"
Orientation="Horizontal" Margin="24"
Maximum="100" LargeChange="10" SmallChange="1" />
<!-- Target. -->
<Label HorizontalAlignment="Center"
Content="{Binding ElementName=scrollbar, Path=Value}" />
</StackPanel>
</Window>
실행 결과
바인딩 자체는 언제나 타겟에 설정한다. Label 컨트롤의 Content
프로퍼티에 다음과 같이 설정되었다.
<Label HorizontalAlignment="Center" Content="{Binding
ElementName=scrollbar, Path=Value}" />
Binding 키워드는 마크업 확장으로 중괄호안에 Binding 키워드가 있다.
Binding의 프로퍼티 중 ElementName에는 ScrollBar의 Name 속성에
정의된 이름이 사용되었고 Path 프로퍼티에는 ScrollBar의 Value
프로퍼티로 설정되었다.
앞 XAML에서 바인딩 정의 내에 따옴표를 사용하고 싶다면 아래과
같이 프로퍼티 엘리먼트를 사용하면 된다.
<!-- Target. -->
<Label HorizontalAlignment="Center">
<Label.Content>
<Binding ElementName="scrollbar" Path="Value"/>
</Label.Content>
</Label>
 바인딩 정의가 있는 컨트롤은 항상 타겟이다. 바인딩 타겟은
DependencyObject로부터 상속되며 바인딩이 설정되는 프로퍼티는
반드시 의존 프로퍼티의 지원을 받아야 한다. 따라서 이 경우에 Label은
DependencyProperty 타입의 public static 필드인 ContentProperty가
필요하다. (당연히 존재한다. 바인딩 소스는 반드시 의존 프로퍼티 일
필요는 없다.)
 프로퍼티는 프로퍼티가 변경 될 때 알려주는 이벤트와 연결되어 있는
것이 이상적이다. 하지만 몇몇 바인딩은 통지 이벤트 없이도 동작한다.
 바인딩을 C#코드로 구현한 예문을 보면 명확히 알 수 있는데 다음 페이지
코드를 보자.
MainWindow.xaml
<Window x:Class="BindingLabelToScroll2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Label, ScrollBar 데이터 바인딩" Height="350" Width="525">
<StackPanel >
<!-- Source. -->
<ScrollBar Name="scrollbar"
Orientation="Horizontal" Margin="24"
Maximum="100" LargeChange="10" SmallChange="1" />
<!-- Target. -->
<Label HorizontalAlignment="Center" Name="label"/>
</StackPanel>
</Window>
MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Controls.Primitives;
namespace BindingLabelToScroll2 {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
Binding bind = new Binding();
bind.Source = scrollbar;
bind.Path = new PropertyPath(ScrollBar.ValueProperty);
label.SetBinding(Label.ContentProperty, bind);
}
}
}
소스와 타겟의 의미는 소스 엘리먼트에서의 변화를 타겟 엘리먼트에 반영되도록 하는 의미를 담고
있다. 시실 이것은 바인딩으로 가능한 4가지 모드 중 하나일 뿐이다. 바인딩 모드는 Mode 프로퍼티에
BindingMode 열거형 멤버로 설정할 수 있다.
Content = “{Binding ElementName=scrollbar, Path=Value, Mode=OneWay}”
<Label.Content>
<Binding ElementName=”scrollbar” Path=”Value” Mode=”OneWay”/>
</Label.Content>
Mode는 TwoWay로 설정할 수도 있는데 Label의 Content 프로퍼티의 변화도 scrollbar의 Value
프로퍼티에 반영된다.
OneTime 모드도 있는데 타겟이 소스로부터 초기화 되지만 소스의 변화가 계속 반영되지 않고 초기 한
번만 반영된다.
OneWayToSource 모드는 소스, 타겟의 의미와 반대가 되도록 타겟이 소스를 갱신하는 모양이다. 본
예제의 경우 Label은 ScrollBar에 넘겨줄 숫자 데이터가 없기에 Label은 비어 있고 ScrollBar를
움직여도 반응이 없는 형태가 된다.

More Related Content

What's hot

CSS Layouting #5 : Position
CSS Layouting #5 : PositionCSS Layouting #5 : Position
CSS Layouting #5 : PositionSandhika Galih
 
Learning jQuery in 30 minutes
Learning jQuery in 30 minutesLearning jQuery in 30 minutes
Learning jQuery in 30 minutesSimon Willison
 
CSS Animations & Transitions
CSS Animations & TransitionsCSS Animations & Transitions
CSS Animations & TransitionsEdward Meehan
 
Document Object Model
Document Object ModelDocument Object Model
Document Object ModelMayur Mudgal
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - ObjectsWebStackAcademy
 
Bootstrap PPT Part - 2
Bootstrap PPT Part - 2Bootstrap PPT Part - 2
Bootstrap PPT Part - 2EPAM Systems
 
Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windowsRuss Weakley
 
Bootstrap Components Quick Overview
Bootstrap Components Quick OverviewBootstrap Components Quick Overview
Bootstrap Components Quick OverviewPerumal N K
 
[2019] DDD Lite@Spring
[2019] DDD Lite@Spring[2019] DDD Lite@Spring
[2019] DDD Lite@SpringNHN FORWARD
 
types of events in JS
types of events in JS types of events in JS
types of events in JS chauhankapil
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Javier Eguiluz
 
A python web service
A python web serviceA python web service
A python web serviceTemian Vlad
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and FunctionsJussi Pohjolainen
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS DirectivesEyal Vardi
 

What's hot (20)

CSS Layouting #5 : Position
CSS Layouting #5 : PositionCSS Layouting #5 : Position
CSS Layouting #5 : Position
 
Learning jQuery in 30 minutes
Learning jQuery in 30 minutesLearning jQuery in 30 minutes
Learning jQuery in 30 minutes
 
Javascript event handler
Javascript event handlerJavascript event handler
Javascript event handler
 
Introduction to DOM
Introduction to DOMIntroduction to DOM
Introduction to DOM
 
CSS Animations & Transitions
CSS Animations & TransitionsCSS Animations & Transitions
CSS Animations & Transitions
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Asp.net control
Asp.net controlAsp.net control
Asp.net control
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
Bootstrap PPT Part - 2
Bootstrap PPT Part - 2Bootstrap PPT Part - 2
Bootstrap PPT Part - 2
 
Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windows
 
Bootstrap Components Quick Overview
Bootstrap Components Quick OverviewBootstrap Components Quick Overview
Bootstrap Components Quick Overview
 
[2019] DDD Lite@Spring
[2019] DDD Lite@Spring[2019] DDD Lite@Spring
[2019] DDD Lite@Spring
 
types of events in JS
types of events in JS types of events in JS
types of events in JS
 
Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8
 
A python web service
A python web serviceA python web service
A python web service
 
Spring statemachine
Spring statemachineSpring statemachine
Spring statemachine
 
Web design - Working with forms in HTML
Web design - Working with forms in HTMLWeb design - Working with forms in HTML
Web design - Working with forms in HTML
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
 
HTML Forms
HTML FormsHTML Forms
HTML Forms
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS Directives
 

Similar to (C#, WPF강좌)WPF, XAML 데이터바인딩이란? Data Binding 개요 및 예제_WPF학원/WPF교육

Web Components 101 polymer & brick
Web Components 101 polymer & brickWeb Components 101 polymer & brick
Web Components 101 polymer & brickyongwoo Jeon
 
20150912 windows 10 앱 tips tricks
20150912 windows 10 앱 tips  tricks20150912 windows 10 앱 tips  tricks
20150912 windows 10 앱 tips tricks영욱 김
 
리눅스와 웹표준(2004)
리눅스와 웹표준(2004)리눅스와 웹표준(2004)
리눅스와 웹표준(2004)Channy Yun
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)ymtech
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화Jinhwa Ko
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
Introduction To Xaml
Introduction To XamlIntroduction To Xaml
Introduction To Xamlphoooo
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrapredribbon1307
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629Dosang Yoon
 
Knock out - 삽질은 그만 #1
Knock out - 삽질은 그만 #1Knock out - 삽질은 그만 #1
Knock out - 삽질은 그만 #1Hyo Da Seo
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322jylee6977
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)DK Lee
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax KoreanTerry Cho
 
웹개발자가 알아야할 기술
웹개발자가 알아야할 기술웹개발자가 알아야할 기술
웹개발자가 알아야할 기술jaypi Ko
 
더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components정호 전
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)ymtech
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405주형 전
 

Similar to (C#, WPF강좌)WPF, XAML 데이터바인딩이란? Data Binding 개요 및 예제_WPF학원/WPF교육 (20)

Web Components 101 polymer & brick
Web Components 101 polymer & brickWeb Components 101 polymer & brick
Web Components 101 polymer & brick
 
20150912 windows 10 앱 tips tricks
20150912 windows 10 앱 tips  tricks20150912 windows 10 앱 tips  tricks
20150912 windows 10 앱 tips tricks
 
리눅스와 웹표준(2004)
리눅스와 웹표준(2004)리눅스와 웹표준(2004)
리눅스와 웹표준(2004)
 
Nexacro
NexacroNexacro
Nexacro
 
How to evaluate accessibility with automatic
How to evaluate accessibility with automaticHow to evaluate accessibility with automatic
How to evaluate accessibility with automatic
 
웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)웹표준 (XHTML + CSS)
웹표준 (XHTML + CSS)
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Introduction To Xaml
Introduction To XamlIntroduction To Xaml
Introduction To Xaml
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap
 
Apache solr소개 20120629
Apache solr소개 20120629Apache solr소개 20120629
Apache solr소개 20120629
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
Knock out - 삽질은 그만 #1
Knock out - 삽질은 그만 #1Knock out - 삽질은 그만 #1
Knock out - 삽질은 그만 #1
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax Korean
 
웹개발자가 알아야할 기술
웹개발자가 알아야할 기술웹개발자가 알아야할 기술
웹개발자가 알아야할 기술
 
더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 
2. xamarin.android 2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
2. xamarin.android  2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...2. xamarin.android  2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
2. xamarin.android 2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
 

(C#, WPF강좌)WPF, XAML 데이터바인딩이란? Data Binding 개요 및 예제_WPF학원/WPF교육

  • 1. 데이터 바인딩 첫번째~ (DATA BINDING) www.topcredu.co.kr 이종철
  • 4. MainWindow.xaml <Window x:Class="BindingLabelToScroll.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Label, ScrollBar 데이터 바인딩" Height="350" Width="525"> <StackPanel > <!-- Source. --> <ScrollBar Name="scrollbar" Orientation="Horizontal" Margin="24" Maximum="100" LargeChange="10" SmallChange="1" /> <!-- Target. --> <Label HorizontalAlignment="Center" Content="{Binding ElementName=scrollbar, Path=Value}" /> </StackPanel> </Window>
  • 6. 바인딩 자체는 언제나 타겟에 설정한다. Label 컨트롤의 Content 프로퍼티에 다음과 같이 설정되었다. <Label HorizontalAlignment="Center" Content="{Binding ElementName=scrollbar, Path=Value}" /> Binding 키워드는 마크업 확장으로 중괄호안에 Binding 키워드가 있다. Binding의 프로퍼티 중 ElementName에는 ScrollBar의 Name 속성에 정의된 이름이 사용되었고 Path 프로퍼티에는 ScrollBar의 Value 프로퍼티로 설정되었다.
  • 7. 앞 XAML에서 바인딩 정의 내에 따옴표를 사용하고 싶다면 아래과 같이 프로퍼티 엘리먼트를 사용하면 된다. <!-- Target. --> <Label HorizontalAlignment="Center"> <Label.Content> <Binding ElementName="scrollbar" Path="Value"/> </Label.Content> </Label>
  • 8.  바인딩 정의가 있는 컨트롤은 항상 타겟이다. 바인딩 타겟은 DependencyObject로부터 상속되며 바인딩이 설정되는 프로퍼티는 반드시 의존 프로퍼티의 지원을 받아야 한다. 따라서 이 경우에 Label은 DependencyProperty 타입의 public static 필드인 ContentProperty가 필요하다. (당연히 존재한다. 바인딩 소스는 반드시 의존 프로퍼티 일 필요는 없다.)  프로퍼티는 프로퍼티가 변경 될 때 알려주는 이벤트와 연결되어 있는 것이 이상적이다. 하지만 몇몇 바인딩은 통지 이벤트 없이도 동작한다.  바인딩을 C#코드로 구현한 예문을 보면 명확히 알 수 있는데 다음 페이지 코드를 보자.
  • 9. MainWindow.xaml <Window x:Class="BindingLabelToScroll2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Label, ScrollBar 데이터 바인딩" Height="350" Width="525"> <StackPanel > <!-- Source. --> <ScrollBar Name="scrollbar" Orientation="Horizontal" Margin="24" Maximum="100" LargeChange="10" SmallChange="1" /> <!-- Target. --> <Label HorizontalAlignment="Center" Name="label"/> </StackPanel> </Window>
  • 10. MainWindow.xaml.cs using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Controls.Primitives; namespace BindingLabelToScroll2 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Binding bind = new Binding(); bind.Source = scrollbar; bind.Path = new PropertyPath(ScrollBar.ValueProperty); label.SetBinding(Label.ContentProperty, bind); } } }
  • 11. 소스와 타겟의 의미는 소스 엘리먼트에서의 변화를 타겟 엘리먼트에 반영되도록 하는 의미를 담고 있다. 시실 이것은 바인딩으로 가능한 4가지 모드 중 하나일 뿐이다. 바인딩 모드는 Mode 프로퍼티에 BindingMode 열거형 멤버로 설정할 수 있다. Content = “{Binding ElementName=scrollbar, Path=Value, Mode=OneWay}” <Label.Content> <Binding ElementName=”scrollbar” Path=”Value” Mode=”OneWay”/> </Label.Content> Mode는 TwoWay로 설정할 수도 있는데 Label의 Content 프로퍼티의 변화도 scrollbar의 Value 프로퍼티에 반영된다. OneTime 모드도 있는데 타겟이 소스로부터 초기화 되지만 소스의 변화가 계속 반영되지 않고 초기 한 번만 반영된다. OneWayToSource 모드는 소스, 타겟의 의미와 반대가 되도록 타겟이 소스를 갱신하는 모양이다. 본 예제의 경우 Label은 ScrollBar에 넘겨줄 숫자 데이터가 없기에 Label은 비어 있고 ScrollBar를 움직여도 반응이 없는 형태가 된다.