[세티의 WPF] 3. DataBinding, Appearence, Resources, Styles Silverlight2007/12/17 09:51
지난 시간에 이어 계속해서 WPF가 가지는 특징들을 알아보도록 하겠습니다.
우리는 어떤 대상을 상대하기 위해 그 대상이 가지는 특징을 파악하는데 주력할 필요가 있습니다.
개략적인 그림을 머리에 그려두면 훗날 학습하는데 더 쉽게 다가갈 수 있을테니깐요.^^
데이터바인딩
WPF 어플리케이션은 수 많은 데이터 타입과 간단한 객체들을 포함하고 있는데요~
컬렉션 객체, WPF 요소, XML Data, ADO.NET Object, 그리고 웹 서비스로와 같은 것들로 부터 반환되는 수많은 객체를 가지고 있고 우리는 그것에 대한 운영이 가능합니다. 데이터를 사용자에게 쉽게 보여주고 또한 상호작용되게 하기 위한 WPF는 하나의 메커니즘을 제공하는데요 그것은 어플리케이션 UI(User Interface)에 데이터 소스 타입을 바인드 하는 것을 말합니다.
데이터 바인딩은요~ 바인딩소스(데이터소스)와 바인딩 타겟(데이터 소비자) 사이를 싱크하는 형식적인 관계입니다.
이런 데이터바인딩은 바인딩 클래스에 의해 캡슐화됩니다.
아래의 예는 Person객체의 PersonName 프로퍼티와 TextBlock의 Text프로퍼티 간의 의존성을 보여줍니다.
<Window ... xmlns:src="clr-namespace:ApplicationNameSpace">
...
<!-- Binding Source -->
<Window.Resources>
<src:Person x:Key="myDataSource" PersonName="Joe"/>
</Window.Resources>
...
<!-- Binding Target -->
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}" />
...
</Window>
Person객체의 PersonName 프로퍼티는 Joe라는 값을 가지고 있고, TextBlock의 Text 프로퍼티는 그것의 바인드를 서술하고 있습니다.
WPF의 데이터바인딩은 유효성, 정렬, 그룹핑 등과 같은 복합적 서비스를 제공합니다.
또한 데이터바인딩은 표준 컨트롤에 쉽게 바인드 되고, 사용자에게 보여지며, 커스터마이즈 할 수 있으며, 데이터 템플레이팅을 지원하는 인프라스트럭처를 제공합니다.
Appearance
WPF를 통해서 우리는 어플리케이션을 빌드하기 위한 컨트롤과 공통 엘리먼트 집합을 만날 수 있으며 나아가 확장, 커스터마이징, 재사용 가능한 엘리먼트와 컨트롤들 또한 만날 수 있습니다. 이것을 통해 우리는 새로운 컨트롤이나 엘리먼트를 쉽게 커스텀 컨트롤을 만들수 있습니다.
나중에 차차 더 많은 걸 배울 수 있을 겁니다.
리소스
어플리케이션내의 멀티 컨트롤은 객체의 타입과 값, 폰트, 배경, 컬러, 컨트롤 템플릿, 데이터 템플릿, 그리고 스타일을 공유합니다. WPF는 객체와 값을 define하기 위해 UI와 같이 잘 알려진 인프라스트럭처를 제공합니다.
다음의 예는 두 개의 버튼 컨트롤이 배경을 공유하는 것을 보여줍니다.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006 ··· entation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<SolidColorBrush x:Key="defaultBackground" Color="Red" />
</Window.Resources>
< StackPanel>
<Button Background="{StaticResource defaultBackground}">One Button</Button>
<Label Background="{StaticResource defaultBackground}">One Label</Label>
</StackPanel>
</Window>
리소스는 특정 컨트롤, 특정 페이지 또는 윈도우 폼 상의 모든 컨트롤이나 어플리케이션의 모든 컨트롤로 범위를 한정할 수 있습니다. 이러한 것들을 이용하여 우리는 객체나 그 값을 쉽게 재사용할 수 있습니다.
스타일
스타일은 제품을 규격화 하기 위해 사용하는 어플리케이션, 문서, UI 디자이너가 가지는 WPF에서 자주 등장하는 여러 특징들 중의 하나 입니다.
디자이너는 application-by-application에 기초해서 확장을 할 수 있습니다.
WPF는 스타일 엘리먼트 모델을 제공하며 아래의 예제는 TextBlock에 사용될 배경색을 설정하는 예제입니다.
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow"/>
</Style>
'Silverlight' 카테고리의 다른 글
| [세티의 WPF] 1. Windows Presentation Foundation 시작하기(2) (0) | 2008/03/16 |
|---|---|
| [세티의 WPF] 1. Windows Presentation Foundation 시작하기(1) (0) | 2008/03/15 |
| [세티의 WPF] Templates, Themes, Design, Graphics, Media, Document (1) | 2007/12/17 |
| [세티의 WPF] 3. DataBinding, Appearence, Resources, Styles (0) | 2007/12/17 |
| [세티의 WPF] 2. Extensible Application Markup Language (0) | 2007/12/16 |
| [세티의 WPF] 1. WPF 코어 타입과 인프라스트럭쳐 (0) | 2007/12/16 |
