Mega Code Archive

 
Categories / C# / WPF
 

Set the DataContext of a Window to a person object

<Window x:Class="WpfApplication1.Window1"     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">     <StackPanel>         <TextBlock Text="Last Name" VerticalAlignment="Center"/>         <TextBox Text="{Binding Path=LastName, Mode=TwoWay}"/>                  <TextBlock Text="Age" VerticalAlignment="Center"/>         <TextBox Text="{Binding Path=Age, Mode=TwoWay}"/>                  <TextBlock Text="Occupation" VerticalAlignment="Center"/>         <ComboBox x:Name="cboOccupation" IsEditable="False" HorizontalAlignment="Left"             Text="{Binding Path=Occupation, Mode=TwoWay}"             Margin="4" Width="140">              <ComboBoxItem>Student</ComboBoxItem>              <ComboBoxItem>Skilled</ComboBoxItem>              <ComboBoxItem>Professional</ComboBoxItem>         </ComboBox>                            <TextBlock Margin="4" Text="Description" FontWeight="Bold" FontStyle="Italic" VerticalAlignment="Center"/>         <TextBlock Margin="4" Text="{Binding Path=Description, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center"/>              </StackPanel> </Window> //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));             }         }     } }