Mega Code Archive

 
Categories / C# / WPF
 

BindingOperations GetBindingExpression

<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);     }   } }