0

我正在尝试创建一个 ObjectDataSource,我可以用它来绑定到一个 BindingSource,而他又应该绑定到一个 ComboBox。

我为这个类创建了一个简单的类和一个简单的列表(见下文)

  1. Times 列表类未显示在我的工具箱中,因此我无法将其拖到表单中,因此我可以选择它作为绑定源的数据源。
  2. 第二个选项是创建一个新的项目数据源(ObjectDataSource)。此处要求“选择您希望绑定到的对象”。我向 Form1 添加了一个朋友/公共/私有变量,它实例化了 Times 类。但是这个变量没有显示。我的项目命名空间中出现的唯一对象是 Form1。

我错过了什么?

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
4

2 回答 2

0

要改善使用 的体验ObjectDataSource,请考虑使用 标记您的数据类型[DataObject]。此外,还有一个[DataObjectMethod]属性定义了可能的操作。

于 2008-12-11T12:22:59.860 回答
0

我可以将System.ComponentModel.DataObject属性添加到class. 但是我不能System.ComponentModel.DataObjectMethod在我的Display/Value property. 当我将它们更改为时,Functions出现以下错误:

'重载解决失败,因为没有可访问New()的接受这个数量的参数'

'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
于 2008-12-11T12:34:01.523 回答