2010-12-10 74 views
2

J'ai utilisé Silverlight et Caliburn Micro et je n'arrive pas à faire apparaître des nœuds enfants dans l'arborescence. Le TreeView est contaimed dans une grille et voici mon extrait XAML:Problèmes de liaison de données TreeView avec Silverlight et Caliburn Micro

<Grid.Resources> 
    <sdk:HierarchicalDataTemplate x:Key="AccountTemplate"> 
     <TextBlock Text="{Binding AccountNumber}" /> 
    </sdk:HierarchicalDataTemplate> 
    <sdk:HierarchicalDataTemplate x:Key="CategoryTemplate" 
            ItemsSource="{Binding CategoryServices}" 
            ItemTemplate="{StaticResource AccountTemplate}"> 
     <TextBlock Text="{Binding Path=CategoryName}" FontWeight="Bold" /> 
    </sdk:HierarchicalDataTemplate> 
</Grid.Resources> 

<Controls:TreeView Grid.Row="1" Grid.Column="0" 
    ItemsSource="{Binding FromAddressServices}" 
    ItemTemplate="{StaticResource CategoryTemplate}" x:Name="FromTreeView" /> 

Les classes qui sont liées sont:

public class AccountAtAddress 
{ 
    public string AccountNumber { get; set; } 
} 

public class ServiceCategory 
{ 
    public string CategoryName { get; set; } 
    public ObservableCollection<AccountAtAddress> CategoryServices; 
} 

Le problème que j'ai est que les premiers éléments de niveau montrent, mais pas d'enfants . Est-ce que quelqu'un a des idées pour faire ce travail?

Répondre

3

Vous devez faire CategoryServices dans une propriété publique. Vous l'avez défini en tant que champ public et le mécanisme de liaison de données ne fonctionne pas avec les champs.

+0

merci - ce petit peu d'information m'échappait! Je vais me souvenir de cela. – dna86

0

Effectuez les opérations suivantes au lieu:

<Grid.Resources> 
    <sdk:HierarchicalDataTemplate DataType="AccountAtAddress"> 
     <TextBlock Text="{Binding AccountNumber}" /> 
    </sdk:HierarchicalDataTemplate> 
    <sdk:HierarchicalDataTemplate DataType="ServiceCategory" 
            ItemsSource="{Binding CategoryServices}"> 
     <TextBlock Text="{Binding Path=CategoryName}" FontWeight="Bold" /> 
    </sdk:HierarchicalDataTemplate> 
</Grid.Resources> 
+0

Je reçois une erreur qui dit DataType n'a pas été trouvé dans HierarchicalDatatemplate – dna86