2011-11-17 3 views
2

저는 이미 몇 주 동안 WPF MVVM 패턴을 배웠습니다. 이 패턴을 명확하게 이해하지 못했습니다.WPF MVVM 해골을 찾고 있습니다

나는이 주제 인 https://stackoverflow.com/questions/275098/what-applications-could-i-study-to-understand-datamodel-view-viewmodel과 거의 모든 참조 된 기사를 읽었습니다.

모든 예제의 문제점은 "많은 추가 작업"(메뉴, 여러보기 등)이 있다는 것입니다. 복잡한 작업을 수행하는 방법을 배울 필요가있을 때 유용하지만, 당신이 시작할 수있는 뭔가를 찾고 있습니다.

나는 내 자신의 응용 프로그램을 만들기 위해 스켈레톤으로 사용할 수있는 응용 프로그램을 갖고 싶습니다. 나는. 난 단지 절대적으로 필수 일이있는 응용 프로그램을보고 싶다, 그 것이다 나는 가정 :

  • 메인 창
  • 모델 클래스
  • 뷰 모델 클래스
  • View 클래스
  • 일부 ICommand의 이행? (나는 그런 것을 필요로 하는가?)
  • 아마 나는

답변

1

체크 아웃 MVVM에 제이슨 돌 링거에 의해이 video 뭔가가있어. 비 이상적인 구현을 만드는 과정을 거친 다음 MVVM을 사용하여 올바르게 수행하는 작은 예제입니다. MVVM에서 시작할 때 매우 유용하다고 생각했습니다. 비디오가 충분히 견고하여 심지어 source을 볼 필요가 없다고 생각했지만 사용할 수 있습니다. 이 멋진 툴킷 문제의

MVVM 라이트 툴킷 http://www.galasoft.ch/mvvm/

+0

이 비디오를 보았지만 다른 데 도움이됩니다. 그러나 난 그냥 VS에서 열어 내 응용 프로그램에 대한 골격으로 사용할 수있는 프로젝트를 찾고 – javapowered

0

보기는 당신이 그것에 대해 생각한다면, 이들의 대부분은 특정 아무것도 없습니다입니다.

"순수한 요구 사항"만 원할 경우 필요한 것은 거의 ICommand입니다. > 그냥 창을

  • 모델 클래스를 사용하여 - -

    • 메인 화면>이 일반 프로젝트 데이터입니다 : 다음은 단지 표준 WPF 또는 C#을 클래스가 있기 때문이다. MVVM에 대한 변경하지 않음
    • 뷰 모델 클래스 ->이 INotifyPropertyChanged
    • 보기 클래스를 구현 단지 보통의 C# 클래스입니다 -> 표준 WPF UserControl을은

    당신이 가지해야 할 유일한 것은은 ICommand입니다 위임자를 ICommand으로 라우팅하는 구현입니다. 이것은 MVVM 프레임 워크에서 추출 할 수 있습니다 (모두 1 개 이상 있지만 대개 2 개의 구현이 있습니다. 하나는 액션 용이고 다른 하나는 Action<T> 용이며 CommandParameter에서 라우팅됩니다).

    명령의 간단한 구현이 필요한 경우 내 MVVM Series 코드에서이 명령을 훔칠 수 있습니다.목표는 MVVM의 기초 만 보여주는 것이기 때문에이 코드는 "프레임 워크"가되지 않으려 고합니다.

  • 2

    부에서

    +0

    그럼 난 모든 것들이 미리 만들어진 응용 프로그램을 찾고 있어요. 'String getHelloWorld' 메소드, view와 viewmodel에 대한 여러 클래스, 뷰상의 하나의 버튼, ViewModel과 버튼에 바인딩 된 "showHelloWorld"명령을 가지고있는 모델은 괜찮습니다. – javapowered

    +0

    @javapowered @javapowered 적절한 " 모델 "- 모델은 이미 존재해야합니다. 특정 도메인 논리 및 데이터 *이기 때문입니다. 다른 바인딩/설정은 모두 사용자가 데이터에 특정한 설정을해야하기 때문에 매번 찢어 버리는 것입니다. 실제로, 남아있는 유일한 것은 표준 WPF 응용 프로그램 (기본 창을 수행)을 수행하고 클래스 (VM)와 UserControl을 추가하는 것입니다. 대부분의 프레임 워크 템플릿은 메시징 서비스에 대한 모든 배관을 설정합니다. 그래서 그들은 훨씬 더 정교하게 될 것입니다. –

    +0

    @javapowered 아마도 WPF 툴킷이 가장 가까운 것은 아니지만 거의 모든 프로젝트에서 템플릿의 모든 부분을 추출 할 수 있습니다. http://wpf.codeplex.com/wikipage?title=WPF % 20Model-View-ViewModel % 20Toolkit & referencedTitle = 홈 –

    0

    매우 기본적인 MVVM 예제 인 here을 작성했습니다.

    처음 MVVM을 배우기 시작했을 때 나는 당신과 같은 문제가있었습니다 ... MVVM의 기본을 설명 할 수있는 간단한 리소스를 찾을 수 없었습니다. MVVM 디자인 패턴을 다른 사람에게 설명하려고 할 때 더 힘들었습니다. 그래서이 코드는 내가 그를 위해 만든 샘플 앱이었습니다. 나는 그것이 매우 간단하고 직선적이라고 생각, 그래서 온라인으로 게시했다.

    편집 : 일반적으로 사용하는 실제 "MVVM skeleton"은 this link에있는 코드와 같습니다. 첫 번째 링크는 하나의 페이지가있는 매우 mvvm 단순한 앱 이었지만 두 번째 링크는 전환보기를 처리 할 수있는 AppViewModel으로 시작합니다.

    +0

    감사합니다. , 나는 그것을 점검 할것이다. 나는 매우 일반적인 것을 필요로한다. VS 템플릿과 같아야합니다 - "MVVM WPF 응용 프로그램 만들기"는 필수 항목 만 만들고 다른 것은 만들지 않습니다. – javapowered

    +1

    @javapowered 소스 코드를 다운로드하여 스켈레톤 앱으로 사용할 수 있습니다. 예제의 시작 객체는'ProductViewModel'과'ProductView'이지만 원하는대로 변경할 수 있습니다. 'RelayCommand'와'NotificationObject' ('INotifyPropertyChanged'를 구현 한 객체)와 같이 필요한 일반 객체도 포함합니다. 실제로 MVVM에 익숙해지면 Microsoft의 PRISM 라이브러리 또는 MVVM Light Toolkit을 사용하는 것이 좋겠지 만 예제를 간단하게 유지하고 타사 라이브러리는 그대로 두길 원합니다. – Rachel

    +1

    @javapowered :이 기사 읽기 : http://msdn.microsoft.com/en-us/magazine/dd419663.aspx. 그럼 레이첼이 제안한대로해라. 프레임 워크에 들어가면 ** 모든 ** 조각을 사용하지 않더라도 많은 도움이됩니다. PRISM이 제일 좋아합니다. 모듈화되고 분리 된 응용 프로그램을 매우 쉽게 만들 수 있습니다. 일을 설정하고 공을 굴리는 방법을 이해하는 학습 곡선이 있지만 일단 그것을 이해하면 놀라운 것입니다. 가이드는 잘 넣어집니다. Modularity, Navigation, Communication, Dependencies 등 핵심 영역을 분열시키는 훌륭한 일을합니다. –