문제

MVVM에서는 모든보기에는 뷰 모델이 있습니다. 내가 이해하는 견해 창, 페이지 또는 UserControl 뷰가 데이터를 가져 오는 뷰 모델을 첨부 할 수 있습니다.

그러나 a DataTemplate ViewModel의 데이터를 렌더링 할 수도 있습니다.

그래서 나는 DataTemplate이 또 다른 "보기"라는 것을 이해하지만 차이, 예를 들어 Windows, Pages 및 UserControls는 자신의 .dlls를 정의 할 수 있으며, 한 유형은 템플릿을 첨부하여 Windows, Pages, UserControls를 동적으로 뷰 모드에 첨부 할 수 있도록 템플릿을 첨부하여 다른 유형의 데이터를 처리합니다. Servicelocator/컨테이너, 등.

UI에서 ViewModel의 데이터를 렌더링 할 때 Windows/Pages/UserControls와 DataTemplates가 어떻게 다른가요? 그리고이 네 가지 이외의 다른 유형의 "보기"가 있습니까?

도움이 되었습니까?

해결책

내가 사용하는 방식 인 DataTemplate은 실제로보기를 ViewModel에 연결하는 방법입니다. 일반적으로 MVVM의 내 데이터 emplates는 다음과 같습니다.

<DataTemplate DataType="{x:Type vm:FooViewModel}">
    <v:FooView />
</DataTemplate>

다른 팁

MVVM으로 전환하는이 시점에서 나에게 가장 의미가있는 것은 다음과 같습니다.

USERCONTROLS : 사용자를 위해 전체 프로세스를 실행하기위한 그룹보기 및 제어. 사용자가 다양한 부품의 부품을 통해 뒤집을 수있는 슬라이드 아웃 서랍에 USERCONTROL을 사용합니다 (각 주요 부품 범주는 사용자의 선택 프로세스/마법사를 통해 사용자를 라우팅합니다). 또한 차트 컨트롤을 살펴보십시오.

보기 : 기본적으로 원하는 데이터를 가장 작은 레벨로 채우는 관련 데이터 및 제어를 그룹화하여 재사용 할 수있는 그리드.

DataTemplates : ListBox 또는 GridView에서와 같이 "항목"에 대한 그룹 사실. 나는 이것을 목록에서 정보를 얻으려고하는 텍스트를 어떻게 나타내는지를 생각합니다. 따라서 제어 템플릿은 데이터 템플릿 블록을 래핑하여 해당 데이터 템플릿으로 랩핑 된 항목 모음의 디스플레이 동작을 제어합니다.

그것이 내가 이해하는 방법이지만 경계는 매우 모호합니다. 나는 애원 책을 좋아한다 Pro Expression Blend 4 Andrew Troelson. 그러나 그는 실제로 데이터가 많은 예를 제시하지 않습니다.

뷰 모드에 뷰를 바인딩하기 위해 DataTemplate을 사용하는 것이 좋습니다. 보기가 초점을 맞출 때마다보기가 새로 고침되므로 현재이 접근법을 사용하여 성능 문제가 있습니다. 보시다시피 여기 그리고 여기

불행히도 나는 아직 더 나은 옵션을 찾지 못했습니다.

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