2011-01-13 4 views
1

Datagrid (또는 List) 및 MVVM 패턴을 사용하여 일종의 Addressbook/Contactbook을 구현하고 싶습니다.MVVM을 사용하여 이러한 응용 프로그램을 구현하는 방법

2-3 주 필드 (예 : 이름 성)와 함께 표시되는 연락처 목록이있는 Outlook/Thunderbird와 비슷한 기능을 제공하며 연락처를 두 번 클릭하면 새로운 모달 이 특정 연락처의 모든 세부 정보를 표시하는 상자

사실 내 시나리오는 고객, 주문 및 제품을 관리하는 응용 프로그램과 훨씬 유사합니다. 사용자는 3 개의 탭을 통해 보여지는 3 개의 DataGrid를 주 뷰로 가질 수 있습니다. 하나는 Customers 목록, Orders 하나는 Products 목록입니다.
각보기에서 추가 대화 상자 열기를 통해 추가, 특정 조건에서 삭제를 수행 할 수 있습니다. 각 개체는 다른 개체와 관계가 있습니다. 예를 들어, 고객 인스턴스에서 해당 고객에 대한 주문 목록과 주문한 제품 목록을 주문했습니다.

몇 주/몇 달이 지나면 인터넷에서 MVVM 패턴에 대해 많은 것을 읽었지만 어떻게 든 혼란스러워집니다. 지금까지이 같은 샘플을 찾을 수있었습니다. (아마도, 내가 잘못 찾았습니까?)

MVVM 패턴을 사용하여 이와 비슷한 것을 구현하고 싶습니다.
어떻게 이러한 응용 프로그램을 구성 할 수 있습니까?
누군가 도움을 줄 수 있습니까? 구조화하는 방법은 무엇입니까?
어딘가에 샘플이 있습니까?

Thx 사전에 도움을 받으십시오. 프레드

답변

0

This article about Catel

는 "사람의 응용 프로그램을"이 포함되어 있습니다. 매우 간단하지만 연락처 목록을 관리 할 수 ​​있습니다. 어쩌면 그것은 당신을위한 출발점 일 것입니다.

+0

: 단지 정렬 필터링 및 목록 탐색을 갖춘 또 다른 좋은 간단한 MVVM 샘플을 발견 안녕, 그 소리/좋아, 적어도 내가 좋아 보인다. 나는 내 생각에 영감을 줄 것이다. 더 깊이 공부하고 프레임 워크를 사용할지, 아니면 몇 가지 아이디어를 선택하는지 살펴 보겠습니다. 고마워! – Fred

2

1) This video은 MVVM의 기본 사항을 이해하는 데 도움이되었습니다.

2) SO에서 "MVVM Master Detail"을 검색하십시오.

3) "(개체) 특정 조건에서 삭제"

: 명령 및 릴레이 명령에 대해 읽어 :

private RelayCommand _delete; 
public ICommand Delete 
{ 
    get 
    { 
     return _delete ?? (_delete = new RelayCommand(action => DoDelete(), condition => CanDelete)); 
    } 
} 

private bool CanDelete 
{ 
    get { return true; // your condition } 
} 

4) "그런 다음 각보기에, 당신은 추가 대화 상자를 여는 통해 (추가 할 수 있습니다)" "각 객체는 다른 객체와 관계가 있습니다."- 다른 ViewModel에 변경 사항을 알려야합니다. 일반적인 해결책은 중개자 패턴을 사용하는 것입니다. 다음 문서를 참조하십시오 :

http://sachabarber.net/?p=477

http://marlongrech.wordpress.com/2008/03/20/more-than-just-mvc-for-wpf/

http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

편집 :

http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/

관련 문제