2014-10-03 3 views
0

GridView의 DataContext에서 속성에 바인딩하려고하고 DataTemplateSelector를 사용하여 올바른 템플릿을 셀에 할당하려고했지만 올바른 방법을 찾지 못하는 것 같습니다. DisplayMemberBinding에 바인딩하면 템플릿 선택기가 재정의되지만 CellTemplateSelector 속성을 설정하면 템플릿을 선택하려는 속성 대신 DataContext에 바인딩됩니다.GridView에서 데이터 바인딩과 함께 CellTemplateSelector를 어떻게 사용합니까?

이 답변은 내가 찾고있는 것을 정확하게 설명하는 것 같지만 설명하는 것을 구현하는 방법에 대한 정보를 찾는 데 어려움이 있습니다. https://stackoverflow.com/a/12519433/1756960. 내가하는 일을 추천 할 것입니다

<ListView ItemsSource="{Binding Items}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Name" 
           DisplayMemberBinding="{Binding Name}" 
           CellTemplateSelector="{StaticResource ContentTypeTemplateSelector}" /> 
       <GridViewColumn Header="Data" 
           DisplayMemberBinding="{Binding}" 
           CellTemplateSelector="{StaticResource ContentTypeTemplateSelector}" /> 
      </GridView> 
     </ListView.View> 
    </ListView> 

답변

0

우선 두 가지 방법 중 하나를 사용하여 컨텐츠 템플릿 선택기를 구별하는 것입니다

이 내가 (게시물에 대한 간체)이 작동하지 않는 사용하여 시도하는 것이다. 첫 번째는 단순히 둘 이상의 템플릿 선택자 클래스를 갖는 것입니다. 두 번째는 템플릿이 서로 다른 바인딩을 할당하는 두 개의 인스턴스를 갖는 것입니다.

<Resources> 
    <ns:TemplateSelector x:Key="NameTemplateSelector"> 
     <ns:TemplateSelector.Template1> 
      <DataTemplate> 
       <!-- Something bound to Name --> 
      </DataTemplate> 
     </ns:TemplateSelector.Template1> 
    </ns:TemplateSelector> 

    <ns:TemplateSelector x:Key="DataTemplateSelector"> 
     <ns:TemplateSelector.Template1> 
      <DataTemplate> 
       <!-- Something bound to Data --> 
      </DataTemplate> 
     </ns:TemplateSelector.Template1> 
    </ns:TemplateSelector> 

첨부 속성에 대한 참조 (MSDN 참조),이 속성을 가지고있는 템플릿 선택에 첨부 한 다음 TemplateSelector의 코드에서 해당 데이터에 액세스 할

.

관련 문제