2009-05-16 9 views
1

Hey, je me demandais s'il était possible de faire défiler plusieurs contrôles WPF. Disons donc que j'ai un contrôle que je veux rendu (avec des données différentes à chaque fois) 10-20 fois en fonction de ce qu'il a.Boucle via UserControl dans WPF

La seule alternative que j'ai trouvée était de créer manuellement 20 de ces contrôles utilisateur et de cacher ceux que je n'utilisais pas.

Est-il possible de les boucler?

Répondre

3

Vous allez probablement devoir affiner votre question.

Qu'entendez-vous par "boucler?" Quand vous dites que vous voulez rendre un contrôle "10-20 fois", voulez-vous dire que vous avez un contrôle dont vous avez besoin pour changer 10-20 fois ou 10-20 contrôles?

Vous pourriez être intéressé par DataTemplates and ItemsControls. Vous pouvez lier ItemsControl à une ObservableCollection contenant différents types d'objets, puis définir différents DataTemplates pour chaque type d'objet contenu dans la collection. Le ItemsControl rendra le contrôle approprié pour chaque objet contenu dans ObservableCollection.

+0

Désolé d'être si vague. Ce que j'ai est un contrôle d'utilisateur personnalisé que je souhaite rendre plus d'une fois. Par exemple: en fonction de la quantité de données que je possède, je souhaite qu'il soit rendu. Donc, si j'avais 5 objets, le XAML peut apparaître comme chacun les données correspondantes. Je vais examiner ces modèles de données pour voir si c'est ce que je cherche. – puttputt

+0

J'utilise probablement UserControls dans le mauvais sens, ces DataTemplates ressemblent à ce que je devrais utiliser. – puttputt

+0

ItemsControl et DataTemplates ressemble à ce dont vous avez besoin. – Will

4

Je suppose que vous utilisez déjà des modèles de données et vous demandez comment faire une boucle sur les objets créés pour représenter vos données à partir du DataTemplate. Ai-je raison? Pour ce faire, vous devez utiliser le VisualTreeHelper.