Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView - отображение массивов 
:(
    Опции темы
mr.Anderson
Дата 9.11.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Почитал статейку на RSDN, вроде бы во всем разобрался. Одного не понял: как можно отобразить в этой таблице содержимое массива? К примеру, если мы имеем вот такой класс:
Код

public class Test
{
    public readonly string MyColumn1 { get; private set; }
    public readonly string[] MyCols;
    
    public Test(uint count)
    {
        MyColumn1 = "MyColValue";
        MyCols = new string[3] {"a", "b", "c"};
    }
}

При этом в таблице автоматически отобразится содержимое поля MyColumn1 (заголовок столбца будет MyColumn1, значение - MyColValue), а вот массив так и останется не у дел... Как я ни пытался, вогнать его у меня в таблицу не получилось. Как это можно сделать? Обойтись без внутреннего массива в моем случае невозможно, можно только, к примеру, заменить его на List<string> (я пробовал, все равно не получилось).


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Partizan
Дата 9.11.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 67



показывай как Binding к данным делается


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
mr.Anderson
Дата 10.11.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Размещаю на форме BindingSource. В его DataSource помещаю свой класс:
Код

bindingSource1.DataSource = new Test();

Ну и, в общем-то, все. У DataGridView ставлю AutoGenerateColumns в true и ставлю источник данных DataSource как bindingSource1. Усе...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 2.12.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Мб кто-нибудь набросает рабочий примерчик, где бы в DataGrid отображался массив данных, лежащий в классе? Был бы оч признателен.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 3.12.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Как то так:
Код

    public class MyItem
    {
        private string m_str;
        public MyItem(string str)
        {
            m_str = str;
        }
        public string str //имя свойства выведется как имя столбца в сетке
        {
            get
            {
                return m_str;
            }
        }
    }

    public class MyItems
    {
        private ArrayList al = new ArrayList();
        public MyItems(uint count)
        {
            for (int i = 0; i < count; i++) al.Add(new MyItem("Запись " + i.ToString()));
        }
        public Array ToArray
        {
            get
            {
                return al.ToArray(typeof(MyItem));
            }
        }
    }
//...
//...сам вызов
            MyItems my = new MyItems(25);
            dataGridView1.DataSource = my.ToArray;
//...
 
Подход думаю ясен. Реализацию уж сам оттачивай  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0951 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.