Mvvm이란 무엇인가
(출처 : https://happybono.wordpress.com/2017/10/10/mvvm-i-mvvm-%ED%8C%A8%ED%84%B4%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90/)
- 설명 -
Mvvm이란 Model, View, ViewModel을 줄인 약자로써 MVC 패턴에서 단점으로 여겨지는 View와 Model의 의존성을 최소화 하기 위해 사용되어진다.
간단히 말하자면 화면에 보이는 View 와 프로그래밍적 로직을 담고 있는 Model을 서로 분리해서, Model을 기준으로 다른 View로 표현하게 할 수 있고, View를 기준으로 다른 데이터를 표현하기 위해 Model을 바꾸는 것이 쉬운 구조로 만드는 것이 주 목적이다.
- 주요 기능-
이러한 Mvvm을 구현하기 위해서 만들어진것이. Command 기능과 데이터 바인딩이라는 기법이다.
Command는 View에서 UI 이벤트를 처리하기 위해서 만들어졌다.
Command를 이용하여 View에서는 Model이 변경될 때 UI에 붙은 이벤트 이름을 변경할 필요가 없어졌다.
데이터 바인딩은 Model에서 만들어진 Data를 View에 표현하기 위해서 만들어졌다.
데이터 바인딩을 이용하여 Model에서 다른 View로 데이터를 표현할때 View의 UI를 호출하지 않고 데이터를 출력 할 수 있게 되었다.
- 구성 -
기본적으로 UI가 나오는 프로그램의 기본 요소는
자료를 저장할 데이터 ,
데이터를 처리하는 로직 ,
데이터를 표현하는 UI
이렇게 3가지 정도로 나눌 수 있다.
여기에 Mvvm을 하기 위해 Property - 데이터 바인딩용 과 Delegate-Command용이 추가된다.
이러한 요소들을 Model, ViewModel, View로 나누어 넣으면
Model
- 데이터를 처리하는 메소드
ViewModel
- 데이터를 저장하고 있는 프로퍼티
- 데이터를 저장하기 위한 공간
- 이벤트 처리를 위한 Delegate
View
- Command가 붙은 UI
이렇게 구성이 된다.
- 도움이 되는 프레임워크 또는 라이브러리 -
WPF
- DevExpress
- Prism
- 도움이 되는 예제 -
https://github.com/2Bbear/WindowsProgrmaDevelop/tree/master/WPF
'Code > C#' 카테고리의 다른 글
WPF Combobox 선택 이벤트, old 값이 나올때 (0) | 2019.03.19 |
---|---|
WPF C#으로 UserControll을 바로 다이얼로그 화면으로 출력 하고 싶을때 (0) | 2019.03.12 |
WPF XAML로 다른 클래스 라이브러리에 있는 xaml 참조하는 방법 (0) | 2019.03.12 |
WPF TextBlock에 다중 바인딩으로 글자 표현하는 방법 (0) | 2019.03.11 |
[WPF] DelegateCommand 사용법 (0) | 2019.02.20 |