2010-08-26 7 views
2

J'ai une exigence dans laquelle j'ai besoin d'avoir une zone de liste dans une autre. J'ai une table qui a beaucoup d'enregistrements, certains champs étant redondants. Je souhaite afficher les en-têtes uniques de ces champs, mais afficher tous les autres champs de cet enregistrement dans une autre zone de liste. Je veux que le nom de l'hôtel soit affiché et ensuite je veux que les blocs de l'hôtel soient affichés pour chaque nom. Pour obtenir des enregistrements uniques, j'utilise un HashSet. Je suis capable d'afficher les données de roomBlock correctement, mais d'une manière ou d'une autre, quand je lie une autre listbox à la collection HashSet Hotelnm, il n'affiche aucun texte.Impossible de lier HashSet à ListBox

Répondre

3

Vous ne recevez aucun élément dans la zone de liste car vous ne lui avez pas lié de collection. La définition de Hotelnm en tant que DataContext permet de créer des liaisons, mais pour obtenir des éléments dans le contrôle ListBox, vous devez lier la propriété ItemsSource. Vous pouvez modifier le code pour définir ItemsSource au lieu de DataContext ou ajouter ItemsSource="{Binding}" en XAML.

À l'intérieur de votre ItemTemplate, le DataContext sera un seul élément de la collection, dans ce cas une chaîne. Pour afficher à nouveau l'élément en tant que Texte d'un TextBlock, utilisez Text="{Binding}" pour utiliser l'objet DataContext lui-même.

Questions connexes