2010-10-25 15 views
0


En travaillant dans WPF, j'ai besoin d'une grille dynamique. Par ceci je veux dire une grille qui contient seulement un type d'objet, a un modèle pour cet objet etc. Mais contrairement à un ItemsControl similaire comme une Listbox, je veux que la grille ait une propriété Maximum Columns. Cela devrait agir comme un délimiteur qui calculera ensuite le nombre de lignes nécessaires en fonction du nombre d'objets dans la grille. Pour ce faire, j'ai pensé à hériter d'une grille pour utiliser ses propriétés Row et Column, mais j'ai un problème ... Je ne sais pas implémenter une propriété ItemsSource en dehors de l'héritage de ItemsSource d'un ItemsControl ...Création d'un contrôle de grille dynamique

donc ma question est en deux parties ...

  1. Suis-je poursuivre ce la bonne voie? devrais-je inherriting ItemsControl et essayer de re-mettre en œuvre le comportement Grille
  2. si cela est la bonne façon de le faire, comment puis-je mettre une propriété ItemsSource avec sa correspondante ItemTemplate

Répondre

1

Voulez-vous quelque chose comme UniformGrid? Si vous définissez la propriété Columns (et ne définissez pas la propriété Rows), elle déterminera automatiquement le nombre de lignes à créer pour contenir ses éléments.

+0

Votre réponse et Vlad sont tous deux similaires en ce sens qu'ils utilisent différentes implémentations d'UniformGrid. Je vais les essayer tous les deux, mais merci! Je ne savais pas de cette existence de contrôles – TerrorAustralis

+0

UniformGrid ne semble pas offrir des fonctionnalités comme ItemsSource. – Vlad

+0

C'est la raison pour laquelle j'ai donné la tique :) UniformGrid est utilisé dans les deux, et fournit la plupart des fonctionnalités que je veux, mais le mélange avec une Listbox fournit toutes les fonctionnalités dont j'ai besoin – TerrorAustralis