ViewModel (4) 썸네일형 리스트형 [WPF] XAML 코드 상에서 DataContext 지정하기 보통 ViewModel을 XAML 코드 상에서 지정하기 위해 ViewModel의 네임스페이스를 상단에 xmlns로 참조해주는 과정을 거쳐야 한다. 그러나 어차피 ViewModel의 네임스페이스는 DataContext를 지정할 때 한 번만 사용되며 이후로는 사용될 일이 딱히 없다. 이러한 경우 아래와 같이 1회성 네임스페이스 참조 구문을 사용할 수 있다. 먼저 임의의 네임스페이스를 사용한 다음, 뒤쪽에 바로 이어서 해당 네임스페이스의 세부 경로를 지정해주면 된다. [WPF] MVVM 디자인 패턴 (3) - ViewModelBase MVVM 디자인 패턴으로 개발을 할 때 필수적인 요소 중 하나로 INotifyPropertyChanged 인터페이스를 구현하는 것이 있다. View와 ViewModel 간에 결합을 낮추면서 데이터를 주고받기 위해서 Binding을 사용하는데, 이 Binding이 데이터가 변화되는 시점을 감지하고 데이터를 가져가기 위해서는 데이터가 변화되었음을 알려줘야 하는 것이다. XAML 코드 상에서 컨트롤의 속성과 ViewModel의 속성을 Binding 하게 되면 내부적으로 속성의 변화를 감지하기 위해 ViewModel의 INotifyPropertyChanged 인터페이스에 선언된 PropertyChanged 이벤트에 감지 메서드를 등록할 것이다. 즉, ViewModel은 INotifyPropertyChanged .. [WPF] MVVM 디자인 패턴 (2) 지난 포스트에서 첨부했던 코드를 분석해보자. MVVM 디자인 패턴의 세 가지 핵심 요소를 중점으로 보려고 한다. 1. Binding Binding은 MVVM의 시작이면서 끝이라고 볼 수 있는 가장 중요한 요소이다. 앞서 사용자에게 보여지는 영역인 View와 데이터의 처리 영역인 ViewModel의 관계에 있어 View는 ViewModel을 알지만 ViewModel은 View를 모른다고 설명하였다. 그렇다면 ViewModel에서 이뤄지는 데이터 처리의 결과를 어떻게 View에 나타낼 수 있을까? WPF는 Binding이라는 기술을 통해 View의 요소(컨트롤)와 ViewModel의 속성을 연결하여 데이터를 마치 동기화되듯이 주고받는 기능을 제공한다. 이를 통해 View는 ViewModel의 속성에 별도의 .. [WPF] MVVM 디자인 패턴 (1) MVVM 디자인 패턴에 대해 알아보자. WPF & .NET Framework로 개발한다는 가정하에 설명하려고 한다. MVVM은 Model-View-ViewModel의 약자로 애플리케이션을 구성하는 요소를 모델, 뷰, 뷰 모델의 세 가지 계층으로 분리하여 각 계층 간의 결합도와 상호 의존성을 낮춤으로 분리 개발 및 유지보수에 용이하도록 하기 위한 디자인 패턴이다. 각 계층의 역할에 대한 어려운 설명은 인터넷에 검색하면 많이 나오니 참고하자. 이 글에서는 어려운 용어는 집어치우고 "그래서 각 계층을 도대체 어떻게 나누라는 건데?" 에 대해 생각해보려고 한다. MVVM 디자인 패턴으로 개발을 할 때에 딱 1가지만 기억하자. 뷰는 뷰 모델을 알지만 뷰 모델은 뷰를 알지 못하고, 뷰 모델은 모델을 알지만 모델은 .. 이전 1 다음