Страница: 1 |
Страница: 1 |
Вопрос: System.Windows.Forms.BindingSource Что за зверь?
Добавлено: 12.06.07 14:37
Автор вопроса: Shota
Если например DataGridView можно непосредственно привязать к DataTable то зачем еще нужен BindingSource?
Можете "по русски" просто объяснить зачем нужен BindingSource?
Просто теорию.....
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
SHDZ
ICQ: 209382104
Вопросов: 39
Ответов: 244
Профиль | | #1
Добавлено: 12.06.07 16:26
а чтоб ты знал где находишься в данный момент времени в таблице, мог просто апдейтить эту строку
Номер ответа: 2
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #2
Добавлено: 12.06.07 16:43
я его в качестве фильтра использовал, потому что в обычном DataGridView эти функции не нашел
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 12.06.07 18:37
DataGridView можно привязать не только к DataTable, но и к любому
другому объекту, реализующему интерфейс IBindingSource, и к ряду
других.
К примеру я вообще DataTable не пользуюсь, а привязываюсь к
собственным классам, реализующим IBindingSource, которые внутри
содержат List(Of MyCBO) и некоторую логику
отображения/редактирования/сортировки.
Номер ответа: 4
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #4
Добавлено: 12.06.07 21:51
Заинтриговал... я из Access-а перескачил в VB.NET.... а посему, полно вопросов.......
к примеру есть таблица:
tblProd:
ProdID( Integer, PrimaryKey, Autoincrement )
ProdName ( String )
ProdPrice ( Currency )
Форма и грид-
Form: Form1
DataGridView: dgProd
Как я понимаю ты создаешь класс Products который сам знает как соединятся с базой, заливать и сливать данные ........ или не так....
потом как-то привязываешь объект класса с гридом...
Если не трудно Павел, примерчик.....
Заранее благодарен!
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 13.06.07 08:00
Есть класс Product, который представляет собой товар. ЧТо-то типа:
Private _ID As Int32
Private _Code As String
Private _Title As String
Public Sub New()
End Sub
Public Property ID() As Int32
Get
Return _ID
End Get
Set(ByVal value As Int32)
_ID = value
End Set
End Property
Public Property Code() As String
Get
Return _Code
End Get
Set(ByVal value As String)
_Code = value
End Set
End Property
Public Property Title() As String
Get
Return _Title
End Get
Set(ByVal value As String)
_Title = value
End Set
End Property
'.......
Есть класс ProductsMapper, который позволяет получать из базы товары
по разным критериям... СОдержит методы типа
GetByID(ByVal ID As Int32) As Product
GetProductsForOrder(ByVal Order As Order) As List(Of Product)
Также метод Save, который позволяет сохранить объект (если он новый -
то делается INSERT INTO, если уже существующий - то UPDATE).
Ну а класс, имплементирующий IBindingSource (у меня он называется
ProductsView) просто выступает оберткой для List(Of Product), и
реализует некоторую логику для отображения списка в гриде (в
частности, логику сортировки по полям).
Номер ответа: 6
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #6
Добавлено: 13.06.07 08:01
МОжно и сразу задать для DataGridView.DataSource этот List(Of Product),
но тогда отвалится сортировка (ее можно прикрутить другими способами,
но не слишком это красиво), и некоторые другие неудобства будут.
Номер ответа: 7
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #7
Добавлено: 13.06.07 12:44
Павел, судя по всему у тебя уже есть что то готовое....... можешь скинуть мне на мыло, чтоб я тебя не мучал ......а?
я попытаюсь разобраться сам.....
mail: karapetyan_a@mail.ru
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 13.06.07 12:50
У меня нет простых примеров. А весь Solution с 1,5 мегабайтов кода я
тебе кидать не буду
Номер ответа: 9
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #9
Добавлено: 13.06.07 12:51
Есть только простой пример для ASP .NET. Специально делал. Надо?
Номер ответа: 10
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #10
Добавлено: 13.06.07 13:01
На безрыбье и рак рыба....... как у вас говорят..
Просто я в АСП не бачу вообще....... мо может разберусь......так что скидывай..... а 1,5 Мб это ведь не много ( что совсем не зипуется? )
Номер ответа: 11
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #11
Добавлено: 13.06.07 13:58
Сорри, я немного тут напутал. То, что я передаю в
DataGridView.DataSource имплементирует не IBindingSource, а
IBindingList.
Насчет примера... Запаковать не сложно. Но во-первых, в этом коде
будет сложно разобраться. Во-вторых, здесь элемент коммерческой тайны.
Насчет ASP .NET:
http://vbnet.ru/temp/DesignPatternsSample.zip
Номер ответа: 12
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #12
Добавлено: 13.06.07 15:49
Спасибо, скачал, ща попытаюсь разобраться