Можно ли связать многомерные данные с DataGridView в C # и .NET? - PullRequest
5 голосов
/ 12 января 2009

Я ищу разработку приложения, которое содержит рабочие листы, разделенные на подклассы DataGridView. Пользователи могут вставлять (или импортировать) CSV-подобные данные на лист, и они будут отражены в структуре данных в памяти - мое первое предположение - это двумерный массив с плавающей точкой.

DataGridView может быть привязан к объектам с определенным набором интерфейсов (т. Е. IList, IListSource и т. Д.), И поэтому теоретически я мог бы создать класс, который инкапсулирует 2D-массив и реализует один из этих интерфейсов. Однако, то, что озадачивает, - то, что спецификации интерфейса, кажется, обслуживают только одномерные массивы - см. Например IList . Что происходит?!

Обновление: Судя по ответам, похоже, IList обслуживает списки объектов. Есть ли способ связать многомерный массив произвольного размера (с плавающей точкой) с DataGridView? Или можно использовать сам DataGridView в качестве структуры данных для хранения чисел?

Ответы [ 3 ]

3 голосов
/ 12 января 2009

Я делал что-то подобное раньше, здесь - представлял двумерный массив в IList; может быть полезным.

2 голосов
/ 12 января 2009

Есть хорошая статья о CodeProject , показывающая, как связать 2D-массивы с DataGridView.

2 голосов
/ 12 января 2009

Думайте об этом так. IList может быть коллекцией объектов. Каждый объект может иметь несколько свойств внутри них. По сути, это как 2D-массив. Первое измерение - это объект, и все его свойства, а второе измерение - это совокупность указанных объектов. Примерно так:

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

Итак, в вашем случае, если столбцы фиксированы, вам просто нужно иметь один объект, который инкапсулирует все эти поля, а затем иметь коллекцию этих объектов, которые затем будут связаны с DataGridView.

Если это не имеет никакого смысла, тогда я не понял вашего вопроса и прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...