2012-08-30 2 views
1

일대 다 관계로 세 개의 연결된 엔터티 (Categories-> Types-> Classes)가 있습니다. 네비게이션 속성과 HierarchicalDataTemplate을 사용하여 Categories 엔티티 만 바인딩하고 나머지는 나타낼 수 있습니까?탐색 속성이있는 TreeView HierarchicalDataTemplate EntityFramework

나는 WPF 프로젝트에서, 최근에 이런 짓을 한
<TreeView ItemsSource="{Binding Categories}"> 

      <TreeView.ItemTemplate> 

       <HierarchicalDataTemplate ItemsSource="{Binding Categories}" > 
        <TextBlock Foreground="Red" Text="{Binding Types}" /> 

        <HierarchicalDataTemplate.ItemTemplate> 
         <HierarchicalDataTemplate ItemsSource="{Binding Classes}"> 
          <TextBlock Text="{Binding TypeName}" /> 

          <HierarchicalDataTemplate.ItemTemplate> 
           <DataTemplate > 
            <TextBlock Text="{Binding ClassName}" /> 
           </DataTemplate> 
          </HierarchicalDataTemplate.ItemTemplate> 

         </HierarchicalDataTemplate> 

        </HierarchicalDataTemplate.ItemTemplate> 

       </HierarchicalDataTemplate> 
      </TreeView.ItemTemplate> 

     </TreeView> 
+0

을 이후, 그것은 단지, 패널을 만들 것인가? 당신은 데이터 유형과 다른 것들을 설정하지 않습니다. WPF 또는 winforms? 어쨌든, 개념적으로, 그렇습니다. 그렇습니다. 그러나 구현은 약간 떨어져 있습니다. :) –

+0

고마워요, 제 구현은 아직 초안을 작성한 것입니다. 나는 여전히 가능성을 묻고 있습니다. – HichemSeeSharp

+0

그럼 분명히 할 수 있습니다! –

답변

1

, 당신의 이름과 탐색 속성과 일치하는 유형을 업데이트했습니다
나는 이런 일을 상상한다.

당신은 그들이 C# 언어의 키워드로 사용하고 있기 때문에 더 구체적인 뭔가 종류/클래스를 변경하는 것을 고려할 수 있습니다,하지만 난 당신이 무엇을 할 것 인 생각

<!-- The Root Category Table --> 
      <HierarchicalDataTemplateDataType="{x:Type Entities1:Categories}" ItemsSource="{Binding Types}" > 
       <StackPanel Orientation="Horizontal"> 
       <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" /> 
       <TextBlock Text="{Binding CategoryName}" FontWeight="Bold" /> 
       </StackPanel> 
      </HierarchicalDataTemplate> 
      <!-- Your Type Table --> 
      <HierarchicalDataTemplate DataType="{x:Type Entities1:Type}" ItemsSource="{Binding Classes}" > 
       <StackPanel Orientation="Horizontal"> 
       <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" /> 
       <TextBlock Text="{Binding TypeName}" /> 
       </StackPanel> 
      </HierarchicalDataTemplate> 
      <!-- Your Class Table--> 
      <DataTemplate DataType="{x:Type Entities1:Class}"> 
       <StackPanel Orientation="Horizontal"> 
       <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" /> 
       <TextBlock Text="{Binding ClassName}" /> 
       </StackPanel> 
      </DataTemplate> 

를 얻을 생각은, 그것을이다 트리의 데이터 유형과 일치합니다. - Category과 일치하면 스택 패널을 만든 다음 탐색 모음 Types을 사용하여 다른 분기를 시작합니다.

types의 경우 동일한 기본 작업을 수행합니다. 해당 항목에 대한 패널을 만든 다음 다른 분기를 탐색 모음 Class에 대해 만듭니다. 그 의사는

class을의 경우는 DataTemplate 아닌 HierarchicalDataTemplate

+0

-이 답변은 놀라운 것입니다. 그런데 어떻게 "ItemTemplate이 두 번 이상 설정되었습니다"라는 오류를 표시하지 않고 이러한 HierarchicalDataTemplate을 트리의 ItemsSource에 추가 했습니까? 감사! – Rachael

관련 문제