web-dev-qa-db-fra.com

Ajouter des lignes / colonnes à une grille dynamiquement

J'ai un enfant UserControl composé de plusieurs zones de texte, étiquettes, image, etc. J'ai besoin de remplir ce contrôle utilisateur dans un contrôle utilisateur parent qui a une grille.

Le nombre de contrôles utilisateur enfant qui doivent être remplis dans le contrôle utilisateur parent est déterminé au moment de l'exécution et peut changer. Fondamentalement, le nombre dépend du résultat de la recherche. Il peut donc être compris entre 0 et n.

Comment puis-je remplir mon contrôle utilisateur enfant dans le contrôle parent? Ou existe-t-il une meilleure alternative à l'utilisation d'un contrôle Grid pour cela?

Remarque: je dois le faire dans mon ViewModel.

15
WAQ

Pour avoir une taille dynamique Grid (nombre de colonnes/lignes), vous pouvez utiliser des assistants tels que @Rachel Propriétés du nombre de lignes/colonnes de la grille WPF

Dans votre cas, cela dépend de ce que vous essayez exactement de réaliser, comme dans la plupart des cas simples en fonction du contexte, lorsqu'il existe une exigence telle que:

Le nombre de contrôles utilisateur enfant qui doivent être remplis dans le contrôle utilisateur parent est déterminé au moment de l'exécution et peut changer. Fondamentalement, le nombre dépend du résultat de la recherche. Il peut donc être compris entre 0 et n.

Je préfère aller avec un ItemsControl ( Exemple ). Utilisez le ItemTemplate pour créer un lien vers celui de votre enfant UserControl. Si nécessaire, vous pouvez également modifier le ItemsPanel pour contrôler la mise en page comme bon vous semble.

16
Viv