본문 바로가기

전체 글131

[WPF] Binding (바인딩) - Converter (컨버터) 바인딩을 하는데 있어, 때로는 연산이 필요한 경우가 있다.예를 들면 바인딩할 때 문자열 뒤에 단위를 붙이고 싶다거나, 또는 bool 값을 Visibility 속성으로(true 일 경우 Visible, false 일 경우 Collapsed 로 각각 변환) 변환하려고 한다던지 할 때 컨버터(Converter)를 사용하면 쉽게 해결할 수 있다. 컨버터는 IValueConverter 를 상속받아 만든다. Convert() 함수와 ConvertBack() 함수를 만들면 되는데, 간단한 예제 코드를 통해 알아보자. 이름에서 알 수 있듯이 Boolean 값을 Visibility 값으로 변경하는 컨버터이다. 변환하고자 하는 로직을 Convert 함수 내부에 구현하고 그 값을 return 해주면 된다. 적용은 다음과 같.. 2012. 7. 24.
[WPF] Dependency Property (의존속성) 의존속성은 기존의 속성을 확장하여 WPF적인 요소를 추가한 속성이라고 할 수 있는데, 1. code-behind, xaml 측에서 모두 접근 가능2. 의존속성이 변경되면 그에 맞게 자동으로 렌더링, 로드 등의 처리의 특징을 갖는다. 기존의 멤버변수와 표현상의 사용법이나 기능은 동일하나 위의 기능을 포함하고 있어 동적으로 변경하는 상황에서 훨씬 강력하고 쉽게 사용할 수 있다.아래의 사진은 모든 컨트롤들의 기본이 되는 FrameworkElement 클래스의 정의 부분이다.흔히 많이 사용하는 ActualWidth, ActualHeight 등의 속성들이 의존속성으로 선언되어 있는 것을 확인할 수 있다.즉 흔히 우리가 사용하는 Width, Height, Background 등의 속성이 사실 다 의존속성이라는 것이.. 2012. 7. 24.
[WPF] Binding (바인딩) - Intro Binding 이란 data, 혹은 property 를 서로 연결하여 서로 동적으로 변환 및 참조할 수 있도록 한다. 즉, 한 엘리먼트의 프로퍼티를 다른 엘리먼트의 프로퍼티, 혹은 데이터와 연결하는 과정이다. 바인딩을 통해 쉽게 서로 값들을 참조하여 동적으로 변경시킬 수 있고, 긴 처리 없이 간단하게 리스트에 DataTable 을 표시하는 등 장점이 많기 때문에 WPF로 작업할 때 바인딩은 필수적으로 사용한다. 바인딩 모드는 OneTime, OneWay, OneWayToSource, TwoWay 의 4가지가 존재한다.OneTime : 최초 한번만 값을 전달OneWay : A를 B에 바인딩했다면, B의 값이 변경되면 A의 값도 변경. 하지만 A의 값이 변경되었을 시 B의 값은 변경되지 않음OneWayToS.. 2012. 7. 24.
WPF와 Silverlight WPF 와 실버라이트는 부모와 독립한 자식 정도의 개념인 것 같다. 그 차이가 애매해서 헷갈리는 경우가 더러 있는데, 일전에 관련된 내용을 조사한 것이 있어서 간단하게 정리하려고 한다. WPF에 대한 설명은 앞의 포스팅으로 대체하고 실버라이트는 초기에 WPF/E 라는 코드명으로 불리었는데, 이는 WPF/everywhere 의 약자라고 한다. WPF의 컴팩트 버전이라고 볼 수 있는데, 브라우저에 설치하는 플러그인의 형태로 flash 와 같은 플러그인이라고 볼 수 있다. 하지만 flash를 대체하기에는 이미 flash의 위상이 너무 높아 한계가 있는 것으로 보여진다. 컴팩트 버전이기 때문에 문법에는 차이가 없고(거의), 대신 지원하지 않는 기능들이 존재한다. Binding 이나 EventTrigger,, 3.. 2012. 7. 24.
WPF 란 WPF (Window Presentation Foundation) Window Vista 에서 새로운 UX 를 제공하기 위해 만든 플랫폼이라고 할 수 있다. flash, flex 의 대항마로 MS 측에서 만든 플랫폼이라고 할 수 있겠고, 윈폼의 차세대 버전 정도라고 보면 될 것 같다.기존의 닷넷 응용프로그램과는 달리 GDI+ 대신 Milcore 라는 형태의 중간 레이어를 통해 Direct X에 직접 접근한다. 하여 그래픽 측의 성능을 최적화할 수 있다. 그 외의 설명은 인터넷에 많이 나와있기 때문에 생략하고, 개인적으로 기존의 플랫폼과의 가장 큰 차이점은 xaml(eXtensible Application Markup Language) + c# 으로 코드가 분리되어 있다는 점이다. xaml 은 xml을 기.. 2012. 7. 24.
반응형