2009-01-12 12 views
5

Estoy mirando para desarrollar una aplicación que cuenta con hojas de una subclase de DataGridView. Los usuarios pueden pegar (o importación) de datos CSV-como en la hoja de cálculo y se reflejarán en una estructura de datos en la memoria - mi primera conjetura sería una matriz 2D de flotadores.¿Puedo vincular datos multidimensionales a un DataGridView en C# y .NET?

DataGridView se puede unir a los objetos con un cierto conjunto de interfaces (es decir IList, IListSource etc.) y así, en teoría podría crear una clase que encapsula una matriz 2D e implementa una de estas interfaces. Sin embargo, lo que es sorprendente es que las especificaciones de interfaz parece que sólo atienden a 1 dimensionales - ver IList por ejemplo. ¡¿Que esta pasando?!

Actualización: De las respuestas, parece que IList atiende listas de objetos. ¿Hay alguna forma de vincular una matriz multidimensional de tamaño arbitrario (de flotantes) a un DataGridView? ¿O está bien usar DataGridView como la estructura de datos para almacenar los flotadores?

Respuesta

2

pensar de esta manera. Un IList puede ser una colección de objetos. Cada objeto puede tener múltiples propiedades dentro de ellos. Entonces, esencialmente, eso es como una matriz 2D. La primera dimensión es el objeto, y todas sus propiedades, y la segunda dimensión, es una colección de dichos objetos. Algo como esto:

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"]) 

Así, en su caso, si las columnas se fijan a continuación, sólo tiene que tener un objeto que encapsula todos los campos y luego tener una colección de aquellos objetos que luego serán unidos a la DataGridView.

Si esto no tiene ningún sentido, entonces yo no entendía su pregunta y me disculpo.

+0

Sí, tiene sentido, tiene la pregunta modificada – Brendan

3

He hecho algo así antes, here - que representa una matriz 2D en un IList; podría ser útil.

+0

Es una buena idea, pero no del todo - Estoy trabajando con datos que pueden cambiar de tamaño en cualquier dimensión, es decir, una columna puede eliminarse tan fácilmente como una fila – Brendan

+0

Eso puede en teoría ser simulado, pero el control de la cuadrícula no te ayudará con eso. –

Cuestiones relacionadas