2009-01-12 9 views
5

Je cherche à développer une application qui comporte des feuilles de calcul sous-classées de DataGridView. Les utilisateurs peuvent coller (ou importer) des données de type CSV dans la feuille de calcul et cela se reflétera dans une structure de données en mémoire - ma première estimation serait un tableau 2D de flottants. DataGridView peut être lié à des objets avec un certain ensemble d'interfaces (c'est-à-dire IList, IListSource, etc.) et, en théorie, je pourrais créer une classe qui encapsule un tableau 2D et implémente l'une de ces interfaces. Cependant, ce qui est déconcertant, c'est que les spécifications de l'interface semblent ne couvrir que les tableaux à 1 dimension - voir IList par exemple. Que se passe-t-il?!Puis-je lier des données multidimensionnelles à un DataGridView en C# et .NET?

Mise à jour: D'après les réponses, IList semble répondre aux listes d'objets. Existe-t-il alors un moyen de lier un tableau multi-dimensionnel de taille arbitraire (de floats) à un DataGridView? Ou est-ce correct d'utiliser DataGridView lui-même comme structure de données pour stocker les flottants?

Répondre

2

Pensez-y de cette façon. Un IList peut être une collection d'objets. Chaque objet peut alors avoir plusieurs propriétés en leur sein. Donc, essentiellement, c'est comme un tableau 2D. La première dimension est l'objet, et toutes ses propriétés, et la deuxième dimension, est une collection desdits objets. Quelque chose comme ceci:

list[0] --> Name, (think of this as list[0]["Name"]) 
      Age, (think of this as list[0]["Age"]) 
      Height (think of this as list[0]["Height"]) 


list[1] --> Name, (think of this as list[1]["Name"]) 
      Age, (think of this as list[1]["Age"]) 
      Height (think of this as list[1]["Height"]) 

Ainsi, dans votre cas, si les colonnes sont fixes alors vous avez juste besoin d'avoir un objet qui encapsule tous ces domaines et ont une collection de ces objets qui seront ensuite liés à la DataGridView.

Si cela n'a aucun sens, je n'ai pas compris votre question et je m'en excuse.

+0

Yup qui a du sens, a modifié la question – Brendan

3

J'ai déjà fait quelque chose comme ça, here - représentant un tableau 2D dans un IList; pourrait être utile.

+0

C'est une bonne idée mais pas tout à fait là - je travaille avec des données qui peuvent être redimensionnées dans une dimension, ie une colonne peut être supprimée aussi facilement qu'une ligne – Brendan

+0

être simulé, mais le contrôle de la grille ne vous aidera pas. –