문제

나는 모델-뷰 뷰 모델 패턴에 대한 많은 좋은 기사를 읽었으며 우리 팀은 최신 버전의 앱 에서이 패턴을 구현하려고합니다. 나는 여전히이 일을하기 위해 함께 모이는 모든 비트를 얻지 못한다. 내가 할 수있는이 패턴의 좋은 예를 찾고 싶습니다. Jason Dolinger가 그의 비디오에서하는 것처럼 소규모로 무언가 여기, 그러나 나는 느린 속도로 스스로 일할 수있는 무언가를 원합니다.

도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

기본적으로 뷰 모델은 모델 주변의 래퍼입니다. 이제는 아직 도움이되지 않을 수 있습니다 .-) 모델을 응용 프로그램과 함께 작동하는 데이터로 생각하십시오. 이제 사람에게 생일이 있고 그 사람의 생일에 입학 할 양식을 원할 수도 있습니다. 우리가 간단한 텍스트 상자를 사용하고 있다고 가정 해보십시오. 날짜가 01-02-2009 12:00:00 AM과 같은 것으로 나타납니다. 우선 우리는 시간 부분을 원하지 않으며 01-02-2009 부분에 대해 만족하지 않을 수도 있습니다. 이것은 로케일 설정에 따라 다릅니다.

그래서 여기 뷰 모델이 IM이 온다. 그것은 사람 클래스를 감싸고 날짜를 연도, 월 및 일의 세 정수 값으로 노출 시켰습니다. 속성 세트에서는 다른 값에서 날짜를 작성하려고 시도하고 발생할 수있는 오류를 표시합니다.

따라서 ViewModel은 특정 뷰 (디스플레이)를 향한 모델 래퍼라고 간단히 말합니다. 그것은 동시에 대부분의 Ivalueconvertors를 제거합니다.

Josh Smith는 여기에 좋은 설명을 가지고 있습니다. http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages 그리고 여기에서 큰 토론 : http://groups.google.com/group/wpfffff-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

다른 팁

Prism 4.0에는 이제 MVVM 응용 프로그램 작성을위한 문서가 포함되어 있습니다. 이것은 Prism 라이브러리를 사용하는 대상이지만 개념은 일반적으로 MVVM 패턴에 대해 작동합니다.

http://compositewpf.codeplex.com/releases

Tony Sneed의 Simple MVVM 툴킷 (Truth) : http://simplemvvmtoolkit.codeplex.com.

툴킷은 도우미 클래스, 비주얼 스튜디오 항목 템플릿 및 코드 스 니펫으로 구성됩니다. 실제 툴킷 외에도 MVVM 패턴을 사용하여 기본 Silverlight 앱을 구축하는 방법에 대한 단계별 지침이 포함 된 샘플 앱이 있습니다.

Nikhil Kothari는 Silverlight.fx 라이브러리와 함께 해당 패턴을 사용하는 방법에 대한 게시물을 가지고 있습니다. 여기에서 확인하십시오. http://www.nikhilk.net/viewmodel-pattern-dlr.aspx

나는 최근에 많은 것을 겪었습니다. 눈에 띄는 두 사람은 다음과 같습니다.

Dan Wahlin 's (Lidnug) :

http://www.lidnug.org/archives.aspx

존 파파 (PDC 2010) :

http://player.microsoftpdc.com/session/76864d75-4da-4858-aac7-786c5f28e344

ViewModel에 대한 최상의 설명은 Scott Hanselman이 유럽에서 MVC 대화하는 동안 주어졌습니다.

1 라이너 응답은-특정 뷰가 필요로하는 모든 필요한 데이터를 전송하고 양방향 바인딩의 경우 뷰에서 수정 된 데이터를 수신하기 위해만 생성되는 모델 (클래스)입니다.

실버 라이트의 실제 MVVM에 대한 내 기사를 살펴보십시오. 비록 새로운 이민자를위한 것이 아니지만 실제 프로젝트에서 작업하는 대부분의 전문 개발자를 대상으로합니다.

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top