2010-06-07 5 views
0

J'ai un contrôle personnalisé que j'ai créé à partir d'un design d'expression que j'ai créé et exporté vers xaml. J'ai mis dedans un itemtemplate/datatemplate lié d'un contorl de ListBox. Il ne semble pas être rendu plus d'une fois et/ou il rend chaque élément au même endroit (un peu comme les mêmes coordonnées x, y)Contrôle personnalisé dans Silverlight ListBox

Il me semble que cela devrait être un processus simple Si je remplis le datatemplate avec un bloc de texte, il génèrerait quelques blocs de texte dans une liste verticale.Je m'attendrais à ce que si j'échange le bloc de texte avec mon contrôle personnalisé, je devrais avoir quelques contrôles personnalisés dans une liste verticale

Dans les deux cas, j'utilise les mêmes données pour la liste déroulante. "Dans les deux cas, j'utilise les mêmes données pour la liste déroulante"

<telerik:ListBox x:Name="PeopleList" Grid.Row="1" > 
     <telerik:ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid> 

        <custom:ExecSelector Height="100" Width="100" x:Name="ExecSelector" FullName="{Binding City}"></custom:ExecSelector>     

       </Grid>  

      </DataTemplate> 
     </telerik:ListBox.ItemTemplate> 
    </telerik:ListBox> 


People = new List<PersonViewModel>(); 
     PersonViewModel person2 = new PersonViewModel() 
     { 
      Name = "Austin Weise", 
      City = "Texas", 
      Email = "[email protected]", 
      Position = "Techincal Director", 
      Bio = "Programmer" 
     }; 
     PersonViewModel person = new PersonViewModel() 
     { 
      Name = "Ian House", 
      City = "Vancouver", 
      Email = "[email protected]", 
      Position = "Creative Director", 
      Bio = "Designer" 
     }; 

     People.Add(person2);    
     People.Add(person); 

     PeopleList.DataContext = this; 
     PeopleList.ItemsSource = People; 

Cela devrait suffire à le visualiser, sauf si les éléments de l'interface utilisateur sont requis pour le contrôle personnalisé.

+0

Quelle est votre question s'il vous plaît, soyez précis! – VoodooChild

Répondre

0

D'après votre description actuelle de votre problème:

  • assurez-vous pas mettre toutes les valeurs des propriétés Top et Left du contrôle externe.
  • assurez-vous que vous avez plus d'un élément de données dans la liste que vous liez à
  • assurez-vous que votre ListBox a une hauteur suffisante pour être en mesure de montrer plus d'un élément
  • assurez-vous que vous n'avez pas désactivé le ListBox barre de défilement.

C'est toutes les estimations que je peux jeter là-bas, sauf si vous avez plus de détails.

+0

Merci, je vais dire que c'était un bon conseil qui m'a fait regarder l'évidence qui était la hauteur extérieure de la grille qui était limitée à la hauteur du contenu. – jaime

Questions connexes