2008-09-30 5 views
13

목록 컨트롤 안에 많은 항목이 있습니다. 각 항목이 항목 유형에 따라 다른 항목 템플리트를 갖기를 원합니다. 그래서 목록의 첫 번째 항목은 ObjectA 유형이므로 ItemTemplateA로 렌더링되기를 원합니다. 두 번째 항목은 ObjectB 유형이므로 렌더링을 위해 ItemTemplateB를 갖기를 원합니다. 지금은 ItemTemplate 설정을 사용하여 하나의 템플릿 만 정의 할 수 있습니다. 이것을 달성하기위한 어떤 방법이라도?WPF 목록의 각 항목에 대한 다른 항목 템플릿?

답변

14

ItemTemplateSelector가 작동하지만 내가 여러 DataTemplate를 만들 쉽게 생각 귀하의 리소스 섹션에 다음 각각의 단지를 제공 DataType. 항목 생성기가 일치하는 데이터 유형을 감지하면 자동으로 다음 DataTemplate을 사용합니까?

<DataTemplate DataType={x:Type local:ObjectA}> 
    ... 
</DataTemplate> 

또한 당신이 DataTemplate에 대한 x:Key 세트가 없는지 확인합니다.
이 접근법에 대해 자세히 알아보기 here

+0

이 접근법은 잘못 수행되지 않습니다. –

+4

{x : Type ... 물건을 넣는 것을 잊어 버렸습니다. 다시 시도하십시오! – rudigrobler

+1

또한 x : Key 세트가 없는지 확인하십시오! – rudigrobler

6

목록 컨트롤의 ItemTemplateSelector 속성을 살펴보십시오. 사용자 지정 TemplateSelector를 가리키고 코드에서 사용할 템플릿을 결정할 수 있습니다. 여기

이 블로그 게시물의 설명 TemplateSelectors :

http://blogs.interknowlogy.com/johnbowen/archive/2007/06/21/20463.aspx

편집 : 여기에 더 나은 포스트 :

http://blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/

+0

내가 필요한 것 같습니다. 감사. –