xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF WpfApplication1" Height="180" Width="260">
Text="{Binding Path=Occupation, Mode=TwoWay}"
Margin="4" Width="140">
Student
Skilled
Professional
//File:Window.xaml.cs
using System.Windows;
using System.ComponentModel;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
this.DataContext = new Employee(){
LastName = "B",
Age = 26,
Occupation = "Professional"
};
}
}
public class Employee : INotifyPropertyChanged
{
private string lastName;
private int age;
private string occupation;
public string LastName
{
get
{
return lastName;
}
set
{
if(this.lastName != value)
{
this.lastName = value;
OnPropertyChanged("LastName");
OnPropertyChanged("Description");
}
}
}
public int Age
{
get
{
return age;
}
set
{
if(this.age != value)
{
this.age = value;
OnPropertyChanged("Age");
OnPropertyChanged("Description");
}
}
}
public string Occupation
{
get { return occupation; }
set
{
if (this.occupation != value)
{
this.occupation = value;
OnPropertyChanged("Occupation");
OnPropertyChanged("Description");
}
}
}
public string Description
{
get
{
return string.Format("{0} {1}, ({2})",
lastName, age, occupation);
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if(this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}