2012-11-19 5 views
0

MVVM 패턴에 대한 여러 기사와 자습서를 읽었지만 고유 한 정보를 찾을 수없는 것이 하나 있습니다. 의는 다음의 예를 보자 :뷰 모델에서 모델의 속성을 공개해야합니까?

이제
private string username; 
public string Username { 
    get; set; 
} 

private string password; 
public string Password { 
    get; set; 
} 

, 뷰 모델은 무엇을 포함해야한다 : 모델은 두 개의 필드와 속성이 포함

? 모델의 인스턴스 만 포함해야합니까? 아니면 모델의 속성을 "다시 노출"해야합니까? 지금은 여러 기사에서 두 변종을 보이고있다

private Model _model; 
public Model Model { 
    get; set; 
} 

public Username { 
    get { return _model.Username; } 
    set { _model.Username = value; } 
} 

private Model _model; 
public Model Model { 
    get; set; 
} 

또는 ... 올바른 인 방법 확실입니다.

답변

1

이 질문에 대한 일반적인 정답은 없습니다. 상황과 개인 취향에 달려 있습니다.

개인적으로 직접 모델을 뷰에 노출시키지 않는 경향이 있습니다. 내가보기에 맞게 조정 된 ViewModel을 갖고 싶습니다. 뷰에 필요하기 때문에 모델에 아무것도 구현하고 싶지 않습니다. 모델이 뷰에 노출 될 때 그렇게 할 수 있습니다.

내 ViewModel에서 나는 가능한 한 모델에 대한 의존성을 거의 가지고 싶지 않습니다. 만약 내가 그걸로 도망 갈 수 있다면, 모델 에 직접적으로 의존하지 않는 ViewModel을 가지고 싶습니다. (그리고 일부 외부 엔티티/서비스 채우기에 매핑을해야합니다).

관련 문제