Arend Jan Ответов: 2

Свойство dataSource на пользовательский элемент управления недоступен


У меня есть пользовательский элемент управления с datagridview, чтобы показать список адресов во всплывающем окне, из которого пользователь может выбрать.
Я последовал примеру Microsoft MSDN. Однако, когда я перетаскиваю встроенный usercontrol на форму, свойство DataSource в сетке свойств элемента управления остается серым цветом. Таким образом я не могу установить свойство dataSource во время desgin.

Что я делаю не так?
Это мой код.:

Imports PrismaModel
Imports System.ComponentModel

<System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")> _
Public Class AdressenControl

  Public Event AdresDoubleClicked(ByVal adres As Adres)

  Public Property DataSource() As Object
    Get
      Return Me.ZaDatagridView1.Datasource
    End Get
    Set(ByVal value As Object)
      Me.ZaDatagridView1.Datasource = Me.ZaDatagridView1.Datasource
    End Set
  End Property

  Public Property DataMember() As String
    Get
      Return Me.ZaDatagridView1.DataMember
    End Get
    Set(ByVal value As String)
      Me.ZaDatagridView1.DataMember = value
    End Set
  End Property

  Private Sub ZaDatagridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ZaDatagridView1.CellDoubleClick

    If e.RowIndex > -1 Then
      Dim adres As Adres
      Dim list As List(Of Adres) = ZaDatagridView1.Datasource
      adres = list(e.RowIndex)
      RaiseEvent AdresDoubleClicked(adres)
    End If
  End Sub

End Class

2 Ответов

Рейтинг:
1

Albin Abel

Привет

Если вы хотите установить свойство datasource, то это должно быть сделано в самом дизайне пользовательского элемента управления. Не во время использования.

Но вы можете назначить его во время выполнения. Имейте публичную функцию/свойство в пользовательском элементе управления, которое помогает установить источник данных. Это вы можете использовать из любого хостингового контейнера, например формы.


Рейтинг:
0

Ali Al Omairi(Abu AlHassan)

я думаю, что вам нужно использовать ControlDesigner.

Удачи Вам;