2010-11-20 5 views
0

Avec le code ci-dessous, mon arborescence ne se remplit jamais. Quelqu'un peut-il voir ce que je fais mal?WPF TreeView ne se remplit jamais à l'aide de HierarchicalDataTemplate

grâce

public class FouList 
{ 
    public string Source { get; set; } 
    public List<FouData> ListOfFou { get; set; } 
} 

public struct FouData 
{ 
    public string Name { get; set; } 
} 

<Window.Resources> 
<HierarchicalDataTemplate DataType="{x:Type local:FouList}" 
           ItemsSource="{Binding Path=ListOfFou}"> 
    <Border BorderBrush="Black" 
       BorderThickness="2" 
       CornerRadius="10">    
      <TextBlock Margin="10,0,0,0" 
          Text="{Binding Source}"></TextBlock> 

    </Border> 
</HierarchicalDataTemplate> 
<HierarchicalDataTemplate DataType="{x:Type local:FouData}"> 
    <Border BorderBrush="Black" 
       BorderThickness="2" 
       CornerRadius="10">   
      <TextBlock Margin="10,0,0,0" 
          Text="{Binding Name}"></TextBlock>    

    </Border> 
</HierarchicalDataTemplate> 
</Window.Resources> 


<TreeView Margin="26,0,35,12" Name="treeView1" Height="298" 
    ItemsSource="{Binding Path=FouList}" VerticalAlignment="Top"/> 

FouList FL = new FouList(); 
//code to populate FL 
//I've debugged and can see it populating correctly 
treeView1.DataContext = FL; 

Répondre

1

ItemsSource La liaison de treeView1 est incorrecte. Je suppose que vous avez l'intention de lier à la propriété ListOfFou, pas à FouList.

<TreeView Margin="26,0,35,12" Name="treeView1" Height="298" 
      ItemsSource="{Binding Path=ListOfFou}" VerticalAlignment="Top"/> 
+0

votre changement a travaillé – mike

0

Je voudrais essayer soit de changer votre

List<FouData> ListOfFou { get; set; } 

à

ObservableCollection<FouData> ListOfFou { get; set; } 

ou propager le changement avec NotifyPropertyChanged("ListOfFou");

+0

C'est un bon conseil en général, mais il n'est pas nécessaire à moins que vous ne vouliez que l'arborescence soit mise à jour lorsque la collection est modifiée. Exemple de code devrait fonctionner, parce que quand 'DataContext' est modifié, l'arbre sera mis à jour de toute façon. – Athari

Questions connexes