c# mvvm 패턴 예제

MVVM, 그것은 꽤 많은 시간 동안 ”무대 뒤”진화 하는 동안, 에 대 한 마이크로소프트의 존 Gossman 블로그 게시물을 통해 2005 년에 대중에게 소개 되었다 아발론에 대 한 (윈도우 프레 젠 테이 션 재단에 대 한 코드 이름, 또는 WPF). 블로그 게시물 제목, WPF 애플 리 케이 션을 구축 하기 위한 모델/보기/ViewModel 패턴 소개 하 고 사람들이 그것의 주위에 그들의 두뇌를 감싸는 코멘트에서 꽤 파문을 생성. 이 예제에서는 프로젝트 ”엔진”의 이름을 지정합니다. 이 프로젝트는 모델 및 뷰 모델을 보유합니다. 논리만 있고 UI 코드만 있기 때문에 클래스 라이브러리입니다. 그러나 속성값을 변경할 때마다 이벤트를 발생시키는 것을 기억하는 것은 매우 지루할 수 있습니다. 이 패턴은 매우 일반적이기 때문에 많은 MVVM 프레임워크는 다음과 유사한 뷰 모델 클래스의 기본 클래스를 제공합니다. 다른 디자인 패턴은 TestEngine 프로젝트에서 단위 테스트를 통해 테스트됩니다. 그러나 MVVM 디자인 패턴에는 뷰가 필요합니다.

그래서 UI (보기)가있는 프로젝트를 만들어야했습니다. ”여기 있어” 메시지는 코드에서 올바르게 실행된 것을 확인할 수 있도록 하는 유일한 메시지입니다. 두 번째 문제는 ICommand 인터페이스가 제공되지만 구현되지 않았기 때문에 Silverlight 3에 있습니다. 실버 라이트에서 4 명령은 더 ”상자 밖으로.” 명령은 뷰모델에서 뷰모델로 의 이벤트 바인딩을 용이하게 합니다. MVVM 패턴을 더 쉽게 사용할 수 있도록 하는 구현 세부 정보입니다. 이는 뷰 모델에서 일반적입니다. 그들은 매우 ”슬림”입니다. 이 예제에서는 논리가 거의 없습니다. 모델의 함수에 대해 서하는 요청만 전달합니다. 이 보기 모델은 분명히 연락처 목록을 관리하도록 설계되었습니다. 또한 삭제 명령과 플래그를 노출하여 삭제가 허용되는지 여부를 나타냅니다(따라서 뷰에 대한 상태 유지).

종종 플래그는 명령 개체의 일부가 되지만 예제는 Silverlight 3에서 명령 바인딩에 대한 기본 지원이 없으며 멋진 프레임 워크가 필요하지 않은 간단한 솔루션을 보여주고 싶었습니다. 이 비디오를 통해 예제를 Silverlight 3에서 Silverlight 4로 변환하고 네이티브 명령을 사용하는 것이 얼마나 쉬운지 확인하십시오. 뷰 모델은 서비스에 대한 구체적인 참조를 만듭니다. 다음은 예제 뷰Model을 사용하여 WPF에서 MVVM 패턴의 구현을 위한 링크입니다. 이 시나리오에서는 뷰 모델을 만들고 뷰에 자신을 바인딩합니다. MIX: 고유한 MVVM 프레임워크 빌드에서 설명한 Rob Eisenberg의 컨벤션 기반 프레임워크에서 이러한 사례를 볼 수 있습니다.