How to: Add Data to an ItemsControl

ItemsControl has a settable ItemsSource property that allows you to add data to an ItemsControl. The items in an ItemsControl are of type ItemCollection. This example demonstrates how to create an ObservableCollection<T> named Colors that is added to a ListBox.

Example

Public Class myColors
    Inherits ObservableCollection(Of String)

    Public Sub New()

        Add("LightBlue")
        Add("Pink")
        Add("Red")
        Add("Purple")
        Add("Blue")
        Add("Green")

    End Sub 
End Class
public class myColors : ObservableCollection<string>
{
    public myColors()
    {
        Add("LightBlue");
        Add("Pink");
        Add("Red");
        Add("Purple");
        Add("Blue");
        Add("Green");
    }
}

Once you have a collection, you can bind the collection to an ItemsControl such as a ListBox. The following example shows how to create a collection to add to the list box by creating an ObjectDataProvider then binding it to the ListBox by using the ItemsSource property.

<Canvas.Resources>
  <src:myColors x:Key="Colors"/>
</Canvas.Resources>
<ListBox Name="myListBox" HorizontalAlignment="Left" SelectionMode="Extended" 
      Width="265" Height="55" Background="HoneyDew" SelectionChanged="myListBox_SelectionChanged"
      ItemsSource="{Binding Source={StaticResource Colors}}" IsSynchronizedWithCurrentItem="true">
</ListBox>

For the complete sample, see ListBox Sample.