Bind to a collection : Data Binding « Data « Silverlight






Bind to a collection

  


<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
        xmlns:local='clr-namespace:SilverlightApplication3' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>
  <UserControl.Resources>
    <local:People x:Key="MyFriends"/>
    <DataTemplate x:Key="DetailTemplate">
       <StackPanel>
          <TextBlock Text="First Name:"/>
          <TextBlock Text="{Binding Path=FirstName}"/>
          <TextBlock Text="Last Name:"/>
          <TextBlock Text="{Binding Path=LastName}"/>
      </StackPanel>
    </DataTemplate>
  </UserControl.Resources>
  <StackPanel>
    <TextBlock>My Friends:</TextBlock>
    <ListBox Width="200" IsSynchronizedWithCurrentItem="True"
             ItemsSource="{Binding Source={StaticResource MyFriends}}"/>
    <TextBlock>Information:</TextBlock>
    <ContentControl Content="{Binding Source={StaticResource MyFriends}}"
                    ContentTemplate="{StaticResource DetailTemplate}"/>
  </StackPanel>
</UserControl>
//File:Window.xaml.cs
using System.ComponentModel;
using System.Collections.ObjectModel;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {

        public MainPage()
        {
            InitializeComponent();
        }
    }
  public class Person : INotifyPropertyChanged
  {
      private string firstname;
      private string lastname;
      public event PropertyChangedEventHandler PropertyChanged;

      public Person()
      {
      }
      public Person(string first, string last)
      {
          this.firstname = first;
          this.lastname = last;
      }
      public override string ToString()
      {
          return firstname.ToString();
      }
      public string FirstName
      {
          get { return firstname; }
          set
          {
              firstname = value;
              OnPropertyChanged("FirstName");
          }
      }
      public string LastName
      {
          get { return lastname; }
          set
          {
              lastname = value;
              OnPropertyChanged("LastName");
          }
      }
      protected void OnPropertyChanged(string info)
      {
          PropertyChangedEventHandler handler = PropertyChanged;
          if (handler != null)
          {
              handler(this, new PropertyChangedEventArgs(info));
          }
      }
  }
    public class People : ObservableCollection<Person>
    {
        public People(): base()
        {
            Add(new Person("A", "Q"));
            Add(new Person("B", "E"));
            Add(new Person("C", "E"));
            Add(new Person("D", "R"));
        }
    }
}

   
    
  








Related examples in the same category

1.Binding Application Data to the UIBinding Application Data to the UI
2.Receiving Change Notifications for Bound Data
3.Validating Input for Bounded Data
4.DataBinding and INotifyPropertyChanged
5.Implementing Data Binding in Silverlight ApplicationsImplementing Data Binding in Silverlight Applications
6.Add a value converter to a binding using XAML
7.Without Binding
8.Text Data Binding
9.Bind to an Existing Object InstanceBind to an Existing Object Instance
10.Binding FontFamily / FontSize value for current ControlBinding FontFamily / FontSize value for current Control
11.Binding an Emoticon object to a GridBinding an Emoticon object  to a Grid
12.Binding a collection of Emoticon objects to a ListBox through the ItemsSource propertyBinding a collection of Emoticon objects to a ListBox through the ItemsSource property