//File:Window.xaml.cs using System.Windows; using System.ComponentModel; using System; using System.Collections.Generic; using System.Text; 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.Shapes; using System.Collections.ObjectModel; namespace WpfApplication1 { public partial class Window1 : Window { EmployeeCollection people = new EmployeeCollection(); public Window1() { InitializeComponent(); this.DataContext = people; } private void AddButton_Click(object sender, RoutedEventArgs e) { people.Add(new Employee(){FirstName = "A",Age = 26}); } } public class Employee : INotifyPropertyChanged { private string firstName; private int age; public string FirstName { get { return firstName; } set { if(firstName != value) { firstName = value; OnPropertyChanged("FirstName"); OnPropertyChanged("Description"); } } } public int Age { get { return age; } set { if(this.age != value) { this.age = value; OnPropertyChanged("Age"); OnPropertyChanged("Description"); } } }