Software & Finance

Visual Studio.NET WPF - ListBox Binding ItemTemplate / DataTemplate

List Box Control is named as MyListBox1.  If you see the XAML code, under ListBox.ItemTemplate, TextBlock control has a binding with CityName.

<TextBlock Grid.Column="0" Text="{Binding CityName}"/>

At run time,
List<CMyData> arrayCity = new List<CMyData>(); is assigned with MyListBox1.ItemsSource = arrayCity;

The important thing here is the class name CMyData has a string member variable called CityName. This member variable name must match the name given in the Binding Property under xaml file.

Look at the code xaml and .cs given below:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;


namespace ListBoxAddItem


    /// <summary>

    /// Interaction logic for MainWindow.xaml

    /// </summary>



    public class CMyData


        public string CityName { get; set; }



    public partial class MainWindow : Window


        List<CMyData> arrayCity = new List<CMyData>();


        public MainWindow()




            arrayCity.Add(new CMyData() { CityName = "Chennai" });

            arrayCity.Add(new CMyData() { CityName = "Mumbai" });

            arrayCity.Add(new CMyData() { CityName = "Hyderabad" });

            arrayCity.Add(new CMyData() { CityName = "New York" });

            arrayCity.Add(new CMyData() { CityName = "San Jose" });

            MyListBox1.ItemsSource = arrayCity;





<Window x:Class="ListBoxAddItem.MainWindow"



        Title="MainWindow" Height="200" Width="225" >



    <Grid x:Name="mainGrid">

        <StackPanel Orientation="Vertical" Margin="0,10,0,0">



        <ListBox Name="MyListBox1" Height="100" HorizontalAlignment="Center"

                 Margin="5,10,5,0" VerticalAlignment="Top" Width="150"






                                <ColumnDefinition Width="50" />


                            <TextBlock Grid.Column="0" Text="{Binding CityName}"/>