<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="ManualUpdateTarget" Height="135" Width="200">
<Window.Resources>
<local:Person x:Key="Tom" Name="Tom" Age="11" />
</Window.Resources>
<StackPanel DataContext="{StaticResource Tom}">
<TextBlock Margin="5" VerticalAlignment="Center">Name:</TextBlock>
<TextBox Margin="5" Name="nameTextBox" Text="{Binding Path=Name}" />
<TextBlock Margin="5" VerticalAlignment="Center">Age:</TextBlock>
<TextBox Margin="5" Name="ageTextBox" Text="{Binding Path=Age}" />
<Button Margin="5" Width="75" 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 Person {
string name;
public string Name {
get { return this.name; }
set {
if( this.name == value ) { return; }
this.name = value;
}
}
int age;
public int Age {
get { return this.age; }
set {
if( this.age == value ) { return; }
this.age = value;
}
}
public Person() { }
public Person(string name, int age) {
this.name = name;
this.age = age;
}
}
public partial class Window1 : System.Windows.Window {
public Window1() {
InitializeComponent();
this.birthdayButton.Click += birthdayButton_Click;
}
void birthdayButton_Click(object sender, RoutedEventArgs e) {
Person person = (Person)this.FindResource("Tom");
person.Age = person.Age+1;
BindingOperations.GetBindingExpression(ageTextBox, TextBox.TextProperty).UpdateTarget();
Console.WriteLine(person.Name);
Console.WriteLine(person.Age);
}
}
}
|