.NET designtime origen de datos (por Combobox)
-
21-08-2019 - |
Pregunta
Estoy tratando de crear un ObjectDataSource que puedo utilizar para unirse a una BindingSource el cual en su turno debe estar sujeta a un cuadro combinado.
He creado una clase simple y una lista simple de esta clase (véase más adelante)
- La clase de lista del Times no aparece en mi caja de herramientas, por lo que no puede arrastrarlo a la forma para que pueda seleccionarlo como el origen de datos para un BindingSource.
- La segunda opción es crear una nueva fuente de datos del proyecto (ObjectDataSource). se pide aquí para 'seleccionar el objeto de su deseo de unirse a'. He añadido un / / variable privada amigo pública a Form1, que crea la instancia de la clase Times. Sin embargo esta variable no muestra. El único objeto que aparece en mi proyecto de espacio de nombres es Form1.
¿Qué me falta?
Public Class Time
Private _timeValue As String
Private _timeDisplay As String
Public Sub New(ByVal Value As String, ByVal Display As String)
Me._timeDisplay = Display
Me._timeValue = Value
End Sub
Public Property Display() As String
Get
Return Me._timeDisplay
End Get
Set(ByVal value As String)
Me._timeDisplay = value
End Set
End Property
Public Property Value() As String
Get
Return Me._timeValue
End Get
Set(ByVal value As String)
Me._timeValue = value
End Set
End Property
End Class
Public Class Times : Inherits List(Of Time)
Public Sub New()
End Sub
End Class
Solución 2
Puedo añadir el atributo System.ComponentModel.DataObject
a la class
. Sin embargo no puedo añadir un System.ComponentModel.DataObjectMethod
a mi Display/Value property
. Cuando cambio a Functions
me sale el siguiente error:
'resolución de sobrecarga fracasaron porque no es accesible New()
acepta esta serie de argumentos'
'This works
<System.ComponentModel.DataObject()> _
Public Class Time
Private _timeValue As String
Private _timeDisplay As String
Public Sub New()
End Sub
Public Sub New(ByVal Value As String, ByVal Display As String)
Me._timeDisplay = Display
Me._timeValue = Value
End Sub
'This doesn't work
<System.ComponentModel.DataObjectMethod()> _
Public Function getDisplay() As String
Return Me._timeDisplay
End Function
'This doesn't work
<System.ComponentModel.DataObjectMethod()> _
Public Function getValue() As String
Return Me._timeValue
End Function
End Class
Otros consejos
Para mejorar la experiencia con ObjectDataSource
, considere marcar sus tipos de datos con [DataObject]
. También, hay un [DataObjectMethod]
atributo que define las operaciones posibles.