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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> связь между двумя коллекциями в DataGrid 
:(
    Опции темы
Demokratizator
Дата 30.4.2009, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день.
Как в контроле DataGrid сделать связь между двумя коллекциями, если члены одной коллекции содержат представителя другой (чтобы появился "+" в родительской строке)?
что-то наподобие:
Код

public class G1
{
public G1(string t)
{ _name = t; }
private string _name;
public string name
{
get { return _name;}
set { _name = value;}
}
private G2Collection _g2c;
public G2Collection g2c
{
get { return _g2c;}
set { _g2c = value; }
}
}
public class G2
{
public G2(string t)
{ _name = t; }
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
}
}
public class G1Collection : CollectionBase, IBindingList
{........}
public class G2Collection : CollectionBase, IBindingList
{........}
// тут "заполняем" DataGrid
G1Collection g1c = new G1Collection();
G1 gg1 = new G1("qwertyG1");
gg1.g2c = new G2Collection();
G2 gg2 = new G2("qwertyG2");
gg1.g2c.Add(gg2);
g1c.Add(gg1);
DataGrid1.DataSource = g1c;

DataGrid содержит две DataGridTableStyle:
1. MappingName = "G1Collection";
2. MappingName = "G2Collection";
В результате в DataGrid отображается только колонка с полем name класса G1.
если первому DataGridTableStyle свойство MappingName изменить на что-ниб другое, отличное от "G1Collection", то появляется этот "+",
но получается, что стиль родительской таблицы (G1Collection) строится "по дефолту" — т.е. названия колонок будут именоваться именами членов класса G1..
Как реализовать 1 вариант??
Или если делать все через DataSet с несколькими таблицами и связями между ними, то как сделать 1 (родительскую таблицу) - только ReadOnly?
Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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