Источник данных .NET Designtime (для Combobox)

я пытаюсь создать ObjectDataSource, который я могу использовать для привязки к BindingSource, который, в свою очередь, должен быть привязан к ComboBox.

Я создал простой класс и простой список для этого класса (см. Ниже)

  1. Класс списка Times не отображается на моей панели инструментов, поэтому я не могу перетащить его в форму, чтобы выбрать его в качестве источника данных для источника привязки.
  2. Второй вариант - создать новый источник данных проекта (ObjectDataSource). Здесь предлагается «выбрать объект, с которым вы хотите связать». Я добавил в Form1 переменную friend / public / private, которая создает экземпляр класса 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
11.12.2008 11:47:59
2 ОТВЕТА

Чтобы улучшить взаимодействие с пользователем ObjectDataSource, попробуйте пометить типы данных с помощью [DataObject]. Также есть [DataObjectMethod]атрибут, который определяет возможные операции.

0
11.12.2008 12:22:59
РЕШЕНИЕ

Я могу добавить 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
0
16.10.2017 02:47:17
DataObjectMethod не имеет конструкторов без параметров, добавьте System.ComponentModel.DataObjectMethodType.
Vincent Van Den Berghe 11.12.2008 12:41:34