Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 03:27   #1
AntiKaspersky
 
Регистрация: 01.12.2006
Сообщений: 4
По умолчанию Связи между таблицами.

Здравствуйте.

Проблема такая. Есть три класса:

Код:
class Class1 
{
   string param1;
   string param2;
   BindingList<Class2> listOfClass2;
    ...   
}

class Class2
{
   string param1;
   string param2;
   BindingList<Class3> listOfClass3;
  ...
}

class Class3
{
  string param1
  ...
}
То есть в первом классе есть параметр(ы) и список ссылок на объекты класса второго. А во втором есть помимо параметров список ссылок на объекты третьего класса. При инициализации создаётся список объектов класса первого.

На форме размещены три таблицы, отображаются все сразу. В первой таблице должен отображаться список объектов первого класса (т.е. "grid1.DataSource = listOfClass1;"). Во второй должен отображаться список объектов класса 2 в зависимости от выбранного объекта в первой таблице. В третьей таблице, соответственно, должен отображаться список объектов класса 3, в зависимости от выбранного объекта класса
2 во второй таблице.

Собственно, вопрос. Как организовать такую связь без обработки событий? То есть, связь между первой и второй таблицей можно создать таким образом (с помощью элемента bindingSource):

Код:
bindingSource1.DataSource = listOfClass1;
grid1.DataSource = bindingSource1;

bindingSource2.DataSource = bindingSource1;
bindingSource2.DataMember = "listOfClass2";
grid2.DataSource = bindingSource2;
Работает замечательно, какой объект в гриде1 выбран, в гриде2 отображается соответствующий список. Но мне надо ещё связать грид2 и грид3. Такая конструкция не прокатывает:

Код:
bindingSource3.DataSource = bindingSource2;
bindingSource3.DataMember = "listOfClass3";
grid3.DataSource = bindingSource3;
Пишет нет такого свойства ("listOfClass3") в DataSource.

Можно конечно обрабатывать эвенты, но мне хочется знать, есть ли способ проще, чтобы не тратить время.

Последний раз редактировалось AntiKaspersky; 18.11.2010 в 03:29.
AntiKaspersky вне форума Ответить с цитированием
Старый 19.11.2010, 14:40   #2
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

Datarelation.как то так
sergei64_89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связи между таблицами new_here Microsoft Office Access 8 06.10.2010 12:13
Установка связи между таблицами insense БД в Delphi 7 01.07.2010 15:11
БД в DELPHI. Связи между таблицами. DENCREAT Помощь студентам 3 24.03.2009 10:55
Удаление связи между таблицами в Access sashaslam БД в Delphi 3 23.07.2008 09:44
Связи между таблицами! Alexij БД в Delphi 1 10.06.2008 18:11