Showing posts with label Using ListBox in Silverlight. Show all posts
Showing posts with label Using ListBox in Silverlight. Show all posts

Using ListBox in Silverlight

First,

Create aclass called Person
  public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
    }
 Then, in xaml,
<ListBox x:Name="lbPeople" Grid.Row="0" Grid.Column="0"  Height="250" Width="300" HorizontalAlignment="Left"
                              ScrollViewer.HorizontalScrollBarVisibility="Hidden" >
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="100" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Margin="10" Text="{Binding FirstName}" />
                        <TextBlock Grid.Column="1" Margin="10" Text="{Binding LastName}" />
                        <TextBlock Grid.Column="2" Margin="10" Text="{Binding Age}" />
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

In C# code,
   void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            lbPeople.ItemsSource = GetPeople();
        }

        public List<Person> GetPeople()
        {
            string[] firstNames = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" };
            string[] lastNames = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" };
            List<Person> people = new List<Person>();
            Random r2 = new Random();
            Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                int index = r.Next(0, 11);
                Person p = new Person
                {
                    FirstName = firstNames[index],
                    LastName = lastNames[index],
                    Age = r2.Next(10, 90)
                };
                people.Add(p);
            }
            return people;
        }