Источник данных .NET Designtime (для Combobox) - PullRequest
0 голосов
/ 11 декабря 2008

Я пытаюсь создать 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

Ответы [ 2 ]

0 голосов
/ 11 декабря 2008

Я могу добавить атрибут 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 голосов
/ 11 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...