지난 6월초 첫 워크샵(?)을 다녀왔습니다.
다사다난했던... 용역일을 하나 마치고 머리를 식히기 위해 억지로 wit의 첫번째 워크샵이라 명명을 하고선
제주도로 날라갔습니다. 후후...갔다온지는 꽤 되었는데 이제서야 포스팅을 하네요.^^
그리고 모두 아이폰으로 찍은 사진이다 보니 그 느낌이 그대로 전달되지가 않네요. T_T

역시 제주도는 바다. 바다. 바다입니다.





현재 wit는 더 높이 비상하기 위해 일을 꾸미고 있습니다.ㅎㅎ
시원하게 놀다 왔으니 미친듯이 달려보겠습니다.


신고

Introduction

VisualStudio 혹은 Expression Blend에서 동작하는 WPF DesignTime Extension을 개발하려고할때 현재 작업중인 Assembly에 대한 정보가 필요할 때가 있습니다. Runtime상에서는 System.Reflection.Assembly.GetEntryAssembly를 이용해 간단하게 현재 실행중인 Assembly의 정보를 가져올 수 있지만, DesignTime에서는 EntryAssembly를 가져올 수 없기 때문에 문제가 발생합니다. 이번시간에는 DesignTime에서 현재 작업중인 Assembly에 대한 정보를 가져오는 방법에 대해 소개합니다.

GetEntryAssembly



신고


wit의 김대욱 매니저가 2010 한국 모바일컴퓨팅 & 퍼스널미디어 컨퍼런스에서
6월4일에 (Track 2 : 퍼스널미디어를 위한 UX/프리젠테이션 기술) 강연을 하게 되었습니다.
시간은 16:10~16:55 입니다. 
신고

Introduction

아이폰을 사용하면서 여러가지 App들을 다운로드받아 사용하는데 무료 App중에 선택한 사진을 레고형태로 만들어주는 App이 있습니다. 한두번 만져보다가 신기해서 WPF로도 한번 구현해봐야겠다는 생각으로 구현해봤습니다. 사진을 선택하면 사진이 레고블럭으로 이루어진 듯한 효과를 내며 또다른 사진을 선택할경우 도미노를 연상케하는 효과로 사진이 전환됩니다. 실제 App보단 다소 디테일한 면이 부족하지만, 유사한 기능을 구현하시는 분들이시라면 참고하시는데에는 도움이 되실거라 생각됩니다. 아래는 소스코드입니다.

신고

Introduction

MVVM 패턴등을 이용해 Application을 개발할때 View에서 호출되는 RoutedEvent를 처리하는데 있어 몇가지 이슈가 발생하게 됩니다. 일반적인 방법으로 RoutedEvent를 Command로 연결하기 위해서는 View와 ViewModel간의 종속적인관계가 유지 View와 ViewModel의 분리를 원칙으로하는 MVVM패턴을 이용할 떄 이 방법은 좋은 방법은 아닙니다. 이번시간에 소개할 내용은 이러한 MVVM 패턴을 이용해 RoutedEvent를 처리해야 하는 상황에서 View와 ViewModel간의 연결 없이 RoutedEvent를 Command로 연결할 수 있는 방법에 대해 소개합니다.

CommandBinding MarkupExtension

이번시간에는 MarkupExtension을 이용해 RoutedEvent와 Command를 연결할 수 있는 CommandBinding MarkupExtension을 구현합니다. 구현 완료시 아래 코드와 같이 XAML을 이용해 RoutedEvent를 쉽게 Command에 연결 할 수 있습니다.


CommandBinding MarkupExtension은 크게 2가지 부분으로 나뉩니다. 첫번째 부분은 CommandBiding MarkupExtension을 정의하는 MarkupExtension과 CommandBinding객체를 이용해 RoutedEvent와 Command를 연결시켜주는 역할을 하는 CommandBinding Attached Property부분입니다.

먼저 CommandBinding MarkupExtension은 아래와 같이 아주 단순한 구조로 Command와 RoutedEvent에 대한 정보를 저장할수 있는 형태를 갖습니다.


그리고 Attached Property에서는 입력받은 CommandBinding으로부터 Target의 RoutedEvent를 처리합니다. CommandBinding Property에서는 CommandBindingManager를 통해 CommandBinding MarkupExtension과 Target을 관리하고 Target의 ViewModel(DataContext)이 갱신되었을 때 CommandBinding에서 지정한 RoutedEvent를 Command에 연결하는 과정을 수행합니다.

이상 Reflection과 Attached Property, MarkupExtension을 이용해 CommandBinding을 구현하는 방법에 대해 소개해 드렸습니다.
신고