title: Make DataRepeater bound to List(Of Object) update?
body: <p>What is the correct way to bind a List(Of Object) to a DataRepeater? Can you provide example code for this?</p>
  
  <p>I have been racking my brains on this and while I can get an already filled list to show in the repeater, subsequent changes to the list have no effect on the DataRepeater.</p>
  
  <p>Ultimately I hope to use this to bind to a dictionary, if that is possible, but I cannot even get the basics working here.</p>
  
  <p>The data repeater is added on the form design surface, with 3 labels and a progress bar in the ItemTemplate. The code I have attempted (where DutData is the DataRepeater) to setup the list and repeater is then:</p>
  
  <pre><code>Public Class BurnIn
      Public Shared currentDuts As New Dictionary(Of UInteger, DeviceUnderTest)   ' Collection of all current DUTs.
      Dim bs As New BindingSource
      Dim testTemp As Boolean = False
      Dim testList As New List(Of DeviceUnderTest)
  
      Private Sub BurnIn_Load() Handles Me.Load
          '...
          ' Add two items to the dictionary and populate them
          currentDuts.Add(0, New DeviceUnderTest(Me.user, 0))
          currentDuts.Item(0).RackBay = "012345678901"
          currentDuts.Item(0).AssemblySerial = "123456789"
          currentDuts.Item(0).SetProgram(1, "Program1")
  
          currentDuts.Add(currentDuts.Count, New DeviceUnderTest(Me.user, 1))
          currentDuts.Item(1).RackBay = "109876543210"
          currentDuts.Item(1).AssemblySerial = "1319A5126"
          currentDuts.Item(1).SetProgram(1, "Program1")
          ' Copy the items to the test list.
          testList.Add(currentDuts.Item(0))
          testList.Add(currentDuts.Item(1))
          testTemp = True
  
          ' Setup the binding source, data source and data bindings.
          bs.DataSource = testList
          LocationLabel.DataBindings.Add("Text", bs, "RackBay")
          DutLabel.DataBindings.Add("Text", bs, "AssemblySerial")
          ProgramLabel.DataBindings.Add("Text", bs, "Program")
          DutProgress.DataBindings.Add("Value", bs, "Progress")
          DutData.DataSource = testList
          '...
          Me.Show()
      End Sub
  </code></pre>
  
  <p>Then to test adding or removing list items:</p>
  
  <pre><code>    Private Sub Button1_Click() Handles Button1.Click
          If testTemp = False Then
              ' Add an item to the dictionary and populate it.
              currentDuts.Add(currentDuts.Count, New DeviceUnderTest(Me.user, 1))
              currentDuts.Item(1).RackBay = "109876543210"
              currentDuts.Item(1).AssemblySerial = "1319A5126"
              currentDuts.Item(1).SetProgram(1, "Program1")
              ' Copy the item to the test list.
              testList.Add(currentDuts.Item(1))
              testTemp = True
          Else
              ' Remove the item from the dictionary and the list.
              currentDuts.Remove(1)
              testList.Remove(testList.Item(1))
              testTemp = False
          End If
      End Sub
  End Class
  </code></pre>