powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Назначение BindingSource
16 сообщений из 16, страница 1 из 1
Назначение BindingSource
    #37807405
Dangreon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увидел тему на этом форуме которую ранее создавал другой пользователь ,и на нее не было ответов:
"
Andrey13
Member

Откуда:
Сообщений: 215
VB.NET увидел только вчера, так что не судите строго, возможно мой вопрос покажется глупым.

Создал форму, кинул на нее DataSet, в редакторе DataSet нарисовал запрос (DataTable) , повесил cтандартный DataGridView, привязал к DataGridView DataSet.DataTable, минуя
BindingSource. Работает.

Теперь сам вопрос, зачем вообще нужен BindingSource? MSDN написано что BindingSource изолирует источник данных для конкретной формы, зачем?
Явно есть причина, или необходимость в некоторых случаях, но в каких.
Возможно какие-то дополнительные приимущества?

Спецы, объясните, пожалуйста, "

Меня интересует тот же вопрос, а именно, если можно привязывать данные в обход этого компонента, который, как я понимаю служит прослойкой между DataSet и конечным привязываемым компонентом то зачем нужен Bindingsource. В чем преимущества его использования? Есть ли случаи когда обойтись без него попросту нельзя либо очень сложно?
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37807582
is_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dangreon,
Весь смысл в дополнительных возможностях BindingSource при проведении связи.
Его свойствах и методах.

Смысл вопроса такой же что и
"Какая разница между связью DataGrid c DataTable и связью DataGrid c DataSet.DataTable"

Например BindingSource.Add привяжет в одно целое кучу таблиц из разных DataSet.
Еще куча интересных свойств и методов, с которыми Вы можете мознакомиться через NSDN.
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37807607
is_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
is_me,

Код: c#
1.
2.
3.
4.
5.
6.
7.
            BindingSource bs = new BindingSource();
            DataTable dt1 = new DataTable();
            DataTable dt2 = new DataTable();
            bs.Add(dt1);
            bs.Add(dt2);
            DataGridView dgv = new DataGridView();
            dgv.DataSource = bs;
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37807627
Dangreon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
is_me,

ясно:) т.е. выходит что для более простого взаимодействия можно обходиться и без него, а если
нужные доп возможности, то bindingsource будет очень кстати?
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37807632
is_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dangreonis_me,

ясно:) т.е. выходит что для более простого взаимодействия можно обходиться и без него, а если
нужные доп возможности, то bindingsource будет очень кстати?
По-моему так.
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37808102
Dangreon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
is_me,

спасибо!
...
Рейтинг: 0 / 0
Назначение BindingSource
    #37810386
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Dangeon

Создайте приложение в которой будут использованы
DataGridView, DataTable, BindingNavigator
И начнете понимать для чего нужен BindingSource.

Основная его задача, это обеспечить унифицированный доступ к источнику данных.
В частности вы сможите точно получать доступ к текущему элементу источника данных
В случае с привязкой DataTable к BindingSource получаем возможности сортировки и фильтрации
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Назначение BindingSource
    #38315017
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю сюда записывать приемы работы c bindingsource так как тема слабо раскрыта даже в msdn.
Код: c#
1.
2.
3.
От себя вот например как можно получить ссылку на вновь создаваемый объект:
DataRowView currentRow;
currentRow = (DataRowView) myBindindSource.AddNew();
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38315077
Фотография Ken@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
megazoid007Предлагаю сюда записывать приемы работы c bindingsource так как тема слабо раскрыта даже в msdn.
Код: c#
1.
2.
3.
От себя вот например как можно получить ссылку на вновь создаваемый объект:
DataRowView currentRow;
currentRow = (DataRowView) myBindindSource.AddNew();



Вот это мало, для раскрытия темы ?
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38315127
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ken@t, мало, это я уже читал, там общий обзор возможностей, до конца не ясно как это все работает, можно ли несколько источников подключать к одному BindingSource или что значит запись:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
DataRelation relation = new DataRelation("CustomersOrders",
data.Tables["Customers"].Columns["CustomerID"],
data.Tables["Orders"].Columns["CustomerID"]);
data.Relations.Add(relation);
masterBindingSource.DataSource = data;
masterBindingSource.DataMember = "Customers";
detailsBindingSource.DataSource = masterBindingSource;
detailsBindingSource.DataMember = "CustomersOrders";


т.е. что именно инкапсулирует BindingSource из источника данных, как он это делает, что передает элементам управление, как он передает, много темных пятен для меня, я не привык просто копировать мне нужно еще понять как это работает
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38315416
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз.
Основная задача (по моему мнению) это определение текущего положения в источнике данных
Вот есть DataGridView c привязанным на прямую DataTable. А по условиям задачи необходимо получить доступ к DataRow для текущей строки грида. И как это сделать в общем случае?
Вот тут нам и приходит на помощь BindingSource, а точнее его свойство Current.
Код: c#
1.
2.
3.
4.
5.
6.
 if (bindingSrc.Current != null){
    DataRowView drv = bindingSrc.Current as DataRowView;
    if (drv != null){
       ...
    }
 }



Хозяйке на заметку. На самом деле при привязке DataTable к DataGridView происходит привязка DataView к DataGridView.
См. DataTable.Default. И обращаем внимание, что именно DataView обладает возможностью сортировки и фильтрации.
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38315612
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
megazoid007что именно инкапсулирует BindingSource из источника данных, как он это делает, что передает элементам управление, как он передает
А зачем это надо знать?
Описаны свойства, методы. Вполне достаточно.
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38316429
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ermak, а как на счет такой строчки:
Код: c#
1.
object i = dataGridView1.BindingContext["Shutters"].Current;


bindingsource тут не участвует ))
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38316434
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
megazoid007, ой сор вот эта
Код: c#
1.
int i = dataGridView1.BindingContext["Shutters"].Position;
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38316457
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2, ну допустим как оказывается bindingsource может являться источником данных не только для элементов управления, но и для токого же bindingsource, причем в текстовом значении подчиненного объекта типа "Таблица.Столбец" можно указывать как оказывается не только столбцы и логический подчиненные элементы, но и добавленные отношения relation, это все я находил в msdn только примерах кода!, (ну или пару слов в описании к коду), с таким подходом через точку можно подмешать любых плюшек о которых даже не дагадываешся, и которые смогут сократить код в двое, в общем интуитивный уровень это не для меня, т.е. microsoft кинуло пару примеров типа как можно с ним работать, но не сказала: это исчерпывающие возможности или нет, типа догадывайтесь сами.
...
Рейтинг: 0 / 0
Назначение BindingSource
    #38318037
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторErmak, а как на счет такой строчки:

object i = dataGridView1.BindingContext["Shutters"].Current;

bindingsource тут не участвует ))

Советую посмотреть в msdn на Version Information для BindingContext и BindingSource ))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Назначение BindingSource
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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