<Window
x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WithoutBinding" Height="135" Width="200">
<StackPanel>
<TextBlock>Name:</TextBlock>
<TextBox Name="nameTextBox"/>
<TextBlock>Age:</TextBlock>
<TextBox Name="ageTextBox"/>
<Button Name="birthdayButton">Birthday</Button>
</StackPanel>
</Window>
//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 WpfApplication1{
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 Window1 : Window {
Employee emp = new Employee("Tom", 11);
public Window1() {
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);
}
}
}
|