Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / CurrencyManager.Почему пропал биндинг? / 15 сообщений из 15, страница 1 из 1
13.01.2005, 12:00
    #32862841
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Это у меня в MDI форме.

this.dataGrid1.SetDataBinding(CReadData.Ds,"TableTest");
this.BindingContext=this.dataGrid1.BindingContext;


Создаю cm при загрузке формы
cm = (CurrencyManager)this.BindingContext[CReadData.Ds.Tables["TableTest"]];

Почему то при выделении строки в гриде не могу получить cm.position хотя биндинг установлен. Показывает каждый раз 0 , следовательно неверно биндит. Но данные в гриде в результате выполнения хранимок появляются , а вот из за того что не могу получить position и не могу получить номер строки.
...
Рейтинг: 0 / 0
13.01.2005, 12:01
    #32862849
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
CReadData Класс
Ds ДатаСет
...
Рейтинг: 0 / 0
13.01.2005, 12:07
    #32862865
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Попробуйте
Код: plaintext
1.
cm = (CurrencyManager)this.BindingContext[CReadData.Ds,"TableTest"];



Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.01.2005, 12:18
    #32862911
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Дает ошибку, это имя таблицы не видит . Хотя в классе таблица имеет именно это имя.
...
Рейтинг: 0 / 0
13.01.2005, 13:32
    #32863117
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
а что говорит this.dataGrid1.DataMember?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.01.2005, 14:28
    #32863295
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Saа что говорит this.dataGrid1.DataMember?

Код: plaintext
 uid  =  S a


Дает имя таблицы TableTest
...
Рейтинг: 0 / 0
13.01.2005, 14:54
    #32863343
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
А что такое CReadData ?
И код вызова формы (как я правильно понял из главной).
Также на главной лежит dataGrid1?
...
Рейтинг: 0 / 0
13.01.2005, 15:09
    #32863380
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
CReadData - это имя класс с кучей статических метод которые исп для работы с базой.

Да , есть родительская форма и есть дочерняя форма. Грид торчит в дочерней.

Все работало нормально, при вызове ХП вижу в гриде записи, но почему то cm никак не хочет возвращать position , а мне эту циферка нужна так это номер строки в забинженной таблице.
...
Рейтинг: 0 / 0
13.01.2005, 15:12
    #32863388
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
2 Sa

Соственно биндинг есть , так при вызове команд нужные записи пишутся в таблицу и я в гриде их вижу. Но при выделении строки в гриде так как грид забинжен на таблицу должен менятся cm.position но он стоит на нуле и всё!
...
Рейтинг: 0 / 0
13.01.2005, 15:17
    #32863410
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Все работало нормально, при вызове ХП вижу в гриде записи, но почему то cm никак не хочет возвращать position , а мне эту циферка нужна так это номер строки в забинженной таблице.

Мне не понятно, что и в каком порядке у вас вызывается.
Понятно только что не тот binding и ясно как решить вашу проблему.

Но где у вас находиться это
Код: plaintext
1.
2.
this.dataGrid1.SetDataBinding(CReadData.Ds,"TableTest"); 
this.BindingContext=this.dataGrid1.BindingContext;
и это
Код: plaintext
1.
cm = (CurrencyManager)this.BindingContext[CReadData.Ds.Tables["TableTest"]];
мне не ясно

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.01.2005, 15:19
    #32863417
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
должен менятся cm.position но он стоит на нуле и всё!

используете не тот binding и всё. :-)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.01.2005, 15:29
    #32863456
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Это в событии load дочерней формы

this.dataGrid1.SetDataBinding(CReadData.Ds,"TableTest");
this.BindingContext=this.dataGrid1.BindingContext;

и это тоже в том же событии

cm = (CurrencyManager)this.BindingContext[CReadData.Ds.Tables["TableTest"]];

У меня в классе дочерней формы объявлено это

private CurrencyManager cm;


А вот из кнопочки родительской формы стартует выполнение хранимки, после выполнение хранимки заполняется DataTable ДатаСета (Ds) c именем "TableTest". Но Cm который я приклеил к этой таблице при выделении строки почему что хавает номер строки...
...
Рейтинг: 0 / 0
13.01.2005, 15:37
    #32863478
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
А вот из кнопочки родительской формы стартует выполнение хранимки, после выполнение хранимки заполняется DataTable ДатаСета (Ds) c именем "TableTest". Но Cm который я приклеил к этой таблице при выделении строки почему что хавает номер строки...

Т.е. создание TableTest осуществляется позднее, чем создается cm?

Чтобы не ошибаться. В случае, наличия dataGrid, используйте именно ваш экземпляр класса DataGrid для определения правильного BindingContext, следующим кодом:
Код: plaintext
1.
cm = (CurrencyManager)this.BindingContext[this.dataGrid1.DataSource, this.dataGrid1.DataMember]

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
13.01.2005, 15:42
    #32863489
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
2 Sa

Парень , да ты просто гений!!!

Есть , пошла резина!!!

Спасибо.
...
Рейтинг: 0 / 0
13.01.2005, 15:42
    #32863491
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CurrencyManager.Почему пропал биндинг?
Почему то при выделении строки в гриде не могу получить cm.position хотя биндинг установлен. Показывает каждый раз 0 , следовательно неверно биндит. Но данные в гриде в результате выполнения хранимок появляются , а вот из за того что не могу получить position и не могу получить номер строки.

да и берите bindingcontext когда требуется position, не обязательно создавать cm на уровне формы.

Код: plaintext
1.
MessageBox.Show(((CurrencyManager)this.BindingContext[this.dataGrid1.DataSource, this.dataGrid1.DataMember]).Position.ToString())

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / CurrencyManager.Почему пропал биндинг? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]