У меня проблема с поздним связыванием: я создаю приложение со списком продуктов.У меня есть класс с именем Item
, в котором хранятся name
, price
, quantity
и description
предмета в списке покупок.
У меня есть модуль с именем ListCollection
, который определяет Collection
из Item
объектов.Я создал форму Edit
, которая будет автоматически отображать выбранные в данный момент свойства элемента ListCollection
, но всякий раз, когда я пытаюсь заполнить текстовые поля, он говорит мне, что Option Strict
запрещает позднюю привязку.
Я МОГУ выбрать простой маршрут и отключить Option Strict
, но я бы предпочел выяснить, в чем проблема, чтобы я знал для дальнейшего использования.
Я вставлю соответствующий код здесь.(Ошибка позднего связывания в EditItem.vb
.)
Код Item.vb:
' Member variables:
Private strName As String
' Constructor
Public Sub New()
strName = ""
' Name property procedure
Public Property Name() As String
Get
Return strName
End Get
Set(ByVal value As String)
strName = value
End Set
End Property
Код ListCollection.vb:
' Create public variables.
Public g_selectedItem As Integer ' Stores the currently selected collection item.
' Create a collection to hold the information for each entry.
Public listCollection As New Collection
' Create a function to simplify adding an item to the collection.
Public Sub AddName(ByVal name As Item)
Try
listCollection.Add(name, name.Name)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Код EditItem.vb:
Private Sub EditItem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Set the fields to the values of the currently selected ListCollection item.
txtName.Text = ListCollection.listCollection(g_selectedItem).Name.Get ' THIS LINE HAS THE ERROR!
Я попытался объявить переменную String
и присвоить ей свойство Item
, а также попытался получить значение непосредственно из элемента List
(без использования Get
функция), и ни один из них не имеет значения.
Как я могу решить эту проблему?