Mega Code Archive

 
Categories / Silverlight / Data
 

Without Binding

<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'      mc:Ignorable='d'      d:DesignWidth='640'      d:DesignHeight='480'>     <StackPanel>     <TextBlock>Name:</TextBlock>     <TextBox Name="nameTextBox"/>     <TextBlock>Age:</TextBlock>     <TextBox Name="ageTextBox"/>     <Button Name="birthdayButton">Birthday</Button>   </StackPanel> </UserControl> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; 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.ComponentModel; namespace SilverlightApplication3 {   public class Employee : INotifyPropertyChanged {     public event PropertyChangedEventHandler PropertyChanged;     protected void Notify(string propName) {       if( this.PropertyChanged != null ) {         PropertyChanged(this, new PropertyChangedEventArgs(propName));       }     }     string name;     public string Name {       get { return this.name; }       set {         this.name = value;         Notify("Name");       }     }     int age;     public int Age {       get { return this.age; }       set {         this.age = value;         Notify("Age");       }     }     public Employee() { }     public Employee(string name, int age) {       this.name = name;       this.age = age;     }   }   public partial class MainPage : UserControl {     Employee emp = new Employee("Tom", 11);     public MainPage() {       InitializeComponent();       this.nameTextBox.Text = emp.Name;       this.ageTextBox.Text = emp.Age.ToString();       emp.PropertyChanged += emp_PropertyChanged;       this.nameTextBox.TextChanged += nameTextBox_TextChanged;       this.ageTextBox.TextChanged += ageTextBox_TextChanged;       this.birthdayButton.Click += birthdayButton_Click;     }     void emp_PropertyChanged(object sender, PropertyChangedEventArgs e) {       switch( e.PropertyName ) {         case "Name":         this.nameTextBox.Text = emp.Name;         break;         case "Age":         this.ageTextBox.Text = emp.Age.ToString();         break;       }     }     void nameTextBox_TextChanged(object sender, TextChangedEventArgs e) {       emp.Name = nameTextBox.Text;     }     void ageTextBox_TextChanged(object sender, TextChangedEventArgs e) {       int age = 0;       if( int.TryParse(ageTextBox.Text, out age) ) {         emp.Age = age;       }     }     void birthdayButton_Click(object sender, RoutedEventArgs e) {       ++emp.Age;       Console.WriteLine(emp.Name);       Console.WriteLine(emp.Age);     }   } }