0

私は、自分の順番で ComboBox にバインドする必要がある BindingSource にバインドするために使用できる ObjectDataSource を作成しようとしています。

簡単なクラスと、このクラスの簡単なリストを作成しました (以下を参照)。

  1. Times リスト クラスがツールボックスに表示されないため、バインディング ソースのデータ ソースとして選択できるようにフォームにドラッグできません。
  2. 2 番目のオプションは、新しいプロジェクト データソース (ObjectDataSource) を作成することです。ここでは「バインドしたいオブジェクトを選択する」ように求められます。Times クラスをインスタンス化する form1 に、friend/public/private 変数を追加しました。ただし、この変数は表示されません。プロジェクトの名前空間に表示される唯一のオブジェクトは 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

System.ComponentModel.DataObjectに属性を追加できますclass。ただし、 に を追加することはできませSystem.ComponentModel.DataObjectMethodDisplay/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 に答える
0

のエクスペリエンスを向上させるにはObjectDataSource、データ型を でマークすることを検討してください[DataObject]。また、[DataObjectMethod]可能な操作を定義する属性もあります。

于 2008-12-11T12:22:59.860 に答える