Привязка UserControl к источнику данных

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Привязка UserControl к источнику данных

Сообщение ger_kar » 19.05.2016 (Чт) 13:15

VB6 позволяет помимо обычных классов и контролов создавать также контролы и классы являющиеся источниками и потребителями данных, т.е. для работы в связанном режиме. Для привязки какого либо свойства к данным, для него нужно выставить в Tools->Procedure Attributes необходимые атрибуты. Я руководствуясь этой инфой с MSDN сделал аналогично. Вот мои настройки:
Binding.png
Binding.png (13.82 Кб) Просмотров: 1636

В принципе привязка работает, но не так как нужно. Со чтением данных проблем нет, а вот установка новых данных работает не так как хотелось бы и не так, как описано в документации. В частности на странице MSDN, которую я привел есть фрагмент кода, для уведомления об изменении свойства:
Код: Выделить всё
Public Property Get AddressLine1() As String
   AddressLine1 = txtAddressLine1.Text
End Property

Public Property Let AddressLine1(NewValue As String)
   If CanPropertyChange("AddressLine1")
      txtAddressLine1.Text = NewValue
      ' The following line tells Visual Basic the
      ' property has changed--if you omit this line,
      ' the data source will not be updated!
      PropertyChanged "AddressLine1"
   End If
End Property

Но реально вызов PropertyChanged ничего в источнике данных не меняет и реальная смена данных происходит только, если переместить фокус на другой контрол. Меня такое поведение никак не устраивает и мне необходимо, что-бы данные в источнике менялись сразу, после того, как связанное свойство контрола меняется. Но как я не пытался сделать подобное поведение, ничего у меня не получается. А мне очень надо. Возможно ли такое вообще сделать?
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Привязка UserControl к источнику данных

Сообщение ger_kar » 19.05.2016 (Чт) 18:46

Вообще по идее, за эту опцию (немедленного обновления источника данных) должен отвечать последний атрибут "Update Immediatel", но он судя по всему вообще не работает. Причем даже в документации он никак не описан, что в локальном MSDN, хоть в сетевом MSDN. Нигде про него ни гугу, и даже на скрине его нет. Вот засада...
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 31

    TopList