Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: sham.clan.su
 Профиль | | #2
Добавлено: 12.06.07 16:43
я его в качестве фильтра использовал, потому что в обычном DataGridView эти функции не нашел

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 13.06.07 08:00
Есть класс Product, который представляет собой товар. ЧТо-то типа:

Public Class 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-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 13.06.07 12:50
У меня нет простых примеров. А весь Solution с 1,5 мегабайтов кода я
тебе кидать не буду :)

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #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
Спасибо, скачал, ща попытаюсь разобраться

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам