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)

  1. 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.
  2. 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
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top