C datagridview в массив

Мне часто приходиться заполнять столбцы DataGridView примерно следующим содержимым: Б Б Б Б Б П П Б Б

Я это делаю так:

Может есть способ по легче? Например можно ли как-то создать массив ( string[] record = < "Б", "Б", "Б", "Б", "Б", "П", "П", "Б", "Б" >; ) и с ним заполнить столбцы?

1 ответ 1

Речь про Windows Forms? Если количество столбцов известно и постоянно, но создаете их в редакторе для DataGridView, затем объединяете данные в один массив и вставляете this.dataGridView.Rows.Add(array).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# datagrid массивы или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Существует класс Dependency с некоторыми свойствами

и класс ProjectView:

Я хочу привязать массив зависимостей от класса ProjectView к DataGridView.

Но когда я так привязываюсь, возникает исключение (AllowNew может быть установлено только true в IBindingList или в списке чтения-записи с общедоступным конструктором по умолчанию.), Поскольку _currentProjectView.Dependencies – это массив, и он не может иметь возможность добавлять новые элементы. Существует решение, конвертируемое в список, но это не удобно, потому что оно просто копирует и потеряет ссылку на исходный массив. Есть ли решение этой проблемы? Как связать правильно массив с datagridview? Благодарю.

c# .net winforms datagridview

Читайте также:  Как подключить проводной микрофон к телефону

2 ответа

2 Решение Mike Perrenoud [2012-11-02 15:13:00]

Итак, скажем, у вас в памяти есть массив объектов Dependency , и вы сделали что-то вроде этого:

Это не изменит ссылку, на которую они указывают. Итак, к тому моменту, из которого они пришли, если он сохранился в памяти, он увидит сделанные изменения. Теперь, вы увидите какие-нибудь дополнения, нет? Но почему вы используете изменяемый тип, например List вместо массива.

Итак, моя рекомендация заключается в том, что вы делаете это:

И сбрасываем массив. Если исходный список Dependency поступает из массива, тогда просто выпустите метод ToList и выгрузите его. Когда вы захотите получить массив из него (возможно, вам нужно передать массив назад), просто выполните следующее:

Это создаст Dependency[] для вас.

РЕДАКТИРОВАТЬ

Поэтому рассмотрим следующую структуру:

И затем, когда редактирование закончено:

0 algreat [2012-11-02 15:28:00]

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

Класс DataGridView поддерживает стандартную модель привязки данных Windows Forms. Это означает, что источник данных может быть любого типа, который реализует один из следующих интерфейсов:

Интерфейс IList , включая одномерные массивы.

Интерфейс IListSource , такой как классы DataTable и DataSet .

Интерфейс IBindingList , например BindingList .

Интерфейс IBindingListView , такой как класс BindingSource .

Я создаю программу с С# и включаю в нее компонент datagridview. У datagridview есть фиксированное количество столбцов (2), которые я хочу сохранить на два отдельных массива. Однако количество строк меняется. Как я могу это сделать?

Предполагая DataGridView с именем dataGridView1 и вы хотите скопировать содержимое первых двух столбцов в массивы строк, вы можете сделать что-то вроде этого:

Я использовал пример Jay и изменил его, чтобы сохранить все строки в одном массиве для легкого экспорта. В конце вы можете легко использовать LogArray [0,0], чтобы получить строку из ячейки 0, столбец 0.

Читайте также:  Amd radeon settings обновление

Надеюсь, я помог кому-то в этом, его первый раз публиковал любой код в Интернете, когда-либо. Кроме того, я еще не закодировал в возрасте, но только начал работать снова.

Посмотрите другие вопросы по меткам arrays c# .net datagridview или Задайте вопрос

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector