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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> привязка класса-обертки к DataGridView 
V
    Опции темы
IGV
Дата 18.9.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Имеется некий класс-обертка, который агрегирует DataTable
Код

claas SomeClass
{
    private DataTable _dataTable;

    ...
}

Задача такая - привязать этот класс на DataGridView, т.е. чтобы можно было просто писать:
Код

var instance = new SomeClass();
...
this.dataGridView.DataSource = instance;

И привязка была бы такая же, как если бы я писал:
Код

this.dataGridView.DataSource = instance._dataTable;

Как это сделать?
--------------------------------------------------------------------------------------------------------------------
Добавлено @ 17:57
Я пытался реализовать интерфейс IListSource но у меня получается какая-то бредятина. 

Делал так:
Код

claas SomeClass : IListSource
{
    private DataTable _dataTable;
    
    ...

    bool IListSource.ContainsListCollection
    {
        get { return false; }
    }

    System.Collections.IList IListSource.GetList()
    {
        var rowList = new List<DataRow>();
        foreach(DataRow row in _dataTable.Rows)
        {
            rowList.Add(row);
        }
        return new BindingList<DataRow>(rowList);
    }
}


что не так?

Это сообщение отредактировал(а) IGV - 18.9.2010, 17:58
PM MAIL ICQ   Вверх
diadiavova
Дата 18.9.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Код

class SomeClass : IListSource
{
    private DataTable _dataTable;
    
    ...
    bool IListSource.ContainsListCollection
    {
        get { return false; }
    }
    System.Collections.IList IListSource.GetList()
    {
        return ((IListSource)._dataTable).GetList();
    }
}




--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
IGV
Дата 19.9.2010, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот я балбес!!!! smile 
спасибо за такое простое решение

P.S.
здесь точечка  лишняя
Код

return ((IListSource)._dataTable).GetList();


PM MAIL ICQ   Вверх
diadiavova
Дата 19.9.2010, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(IGV @  19.9.2010,  09:11 Найти цитируемый пост)
здесь точечка  лишняя

 smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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