Click here to Skip to main content
15,892,199 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more: , +
I have a user control with a datagridview to show an address list in a popup, that the user can choose from.
I followed a Microsoft MSDN example. However, when I drag the built usercontrol onto a form, the DataSource property in the property grid of the control remains grayed out. Thus I can't set a datasource property during desgin time.

What am I doing wrong?
This is my code:

VB
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
Posted
Updated 5-Mar-18 0:27am

i think you need to use a ControlDesigner.

Goodd Luck;
 
Share this answer
 
Hi

If you want to set the datasource property then it has to be done on the user control design itself. Not while using.

But you can assign it during runtime. Have a public function/property in the user control which helps set the datasource. That you can use from any hosting container like form.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900