How do I bind an array to a listbox?

Greetings Experts...

Disclaimer: Newbie

I've been playing around with writing my own classes and have actually been fairly successful. That being said. I'm trying to use an array as a property in a class. I don't know how to bind the array to a listbox, I don't even know if I declared the array correctly.

Here's the code in the class

    Dim lweekstr As Array = Array.CreateInstance(GetType(Object), 53)
    Public Property weekstr() As Array
        Get
            Return lweekstr
        End Get
        Set(ByVal Value As Array)
            lweekstr = Value
        End Set
    End Property

Here's the code in the class that instantiates the above:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim f As New ClassLibrary1.CalendarClass
        f.Year = 2004
        f.test() 'this method populates the array
        Me.ListBox1.DataSource = f.weekstr
        '---- this code tests to see if there is something in the array(there is)
        Dim c As Integer
        For c = 1 To 10
            MsgBox(f.weekstr(c))
        Next
    End Sub

Thanks in advance for your help
 
KenDickinsonAsked:
Who is Participating?
 
bramsquadCommented:
       this works

        Dim arr As Integer() = {1, 2, 3, 4}
        For i As Integer = 0 To arr.GetUpperBound(0)
            Me.ListBox1.Items.Add(arr(i))
        Next

~b
0
 
Bob LearnedCommented:
If you are trying to store an Integer into an Object array, there is a performance hit from converting a value type (Integer) into an object type to store in the array (this is called boxing).  Use a type-specific declaration instead:

Dim lWeekStr As Integer()

Bob
0
 
iboutchkineCommented:
To bind lb to array
  ListBox1.DataSource = (arr)


To ppulate array from lb

ListBox1.Items.CopyTo(arr, 0)



or all together - populate array from lb and back to array

 Dim arr(ListBox1.Items.Count - 1)

        ListBox1.Items.CopyTo(arr, 0)
        ListBox1.Items.Clear()
        MessageBox.Show(Join(arr, ";"))
        ListBox1.Items.AddRange(arr)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.