此示例基于 wpf学习笔记-指定数据源


1.让对象实现INotifyPropertyChanged接口,以便属性更改发出通知

wpf学习笔记-更新数据源_数据源    public class Person : INotifyPropertyChanged
wpf学习笔记-更新数据源_执行时间_02wpf学习笔记-更新数据源_.net_03    wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06        public Person() wpf学习笔记-更新数据源_执行时间_04{ }
wpf学习笔记-更新数据源_wpf_08        public Person(string name, int age)
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06        wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_wpf_08             = name;
wpf学习笔记-更新数据源_wpf_08            this.age = age;
wpf学习笔记-更新数据源_wpf_14        }
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_wpf_08        string name;
wpf学习笔记-更新数据源_wpf_08        public string Name
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06        wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06            get wpf学习笔记-更新数据源_执行时间_04{ return ; }
wpf学习笔记-更新数据源_wpf_08            set
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06            wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_wpf_08                 = value;
wpf学习笔记-更新数据源_wpf_08                OnPropertyChanged("Name");
wpf学习笔记-更新数据源_wpf_14            }
wpf学习笔记-更新数据源_wpf_14        }
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_wpf_08        int age;
wpf学习笔记-更新数据源_wpf_08        public int Age
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06        wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06            get wpf学习笔记-更新数据源_执行时间_04{ return this.age; }
wpf学习笔记-更新数据源_wpf_08            set
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06            wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_wpf_08                this.age = value;
wpf学习笔记-更新数据源_wpf_08                OnPropertyChanged("Age");
wpf学习笔记-更新数据源_wpf_14            }
wpf学习笔记-更新数据源_wpf_14        }
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_wpf_08        public event PropertyChangedEventHandler PropertyChanged;
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_wpf_08        protected void OnPropertyChanged(string propName)
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06        wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_wpf_08            if (this.PropertyChanged != null)
wpf学习笔记-更新数据源_执行时间_05wpf学习笔记-更新数据源_执行时间_06            wpf学习笔记-更新数据源_执行时间_04{
wpf学习笔记-更新数据源_wpf_08                PropertyChanged(this, new PropertyChangedEventArgs(propName));
wpf学习笔记-更新数据源_wpf_14            }
wpf学习笔记-更新数据源_wpf_14        }
wpf学习笔记-更新数据源_wpf_08
wpf学习笔记-更新数据源_.net_65    }


2.xaml(略去布局)

wpf学习笔记-更新数据源_数据源
wpf学习笔记-更新数据源_数据源        <Label Content="{Binding Name}"></Label>
wpf学习笔记-更新数据源_数据源        <Label Content="{Binding Age}"></Label>
wpf学习笔记-更新数据源_数据源        <TextBox Text="{Binding Path=Name, Source={StaticResource Tom}}" />
wpf学习笔记-更新数据源_数据源        <TextBox Text="{Binding Age}" 
wpf学习笔记-更新数据源_数据源            />

这里又出现了新的绑定语法,{Binding Path=Age}等价{Binding Age}

3.目标:
当更改目标属性的时候,更新数据源(更新以后则绑定的对象也发生变化,如更改TextBox的Text则Label的Content也发生变化)

4.设置更新数据源执行时间
通过设置Binding对象的UpdateSourceTrigger  来确定执行时间.
wpf学习笔记-更新数据源_数据源_72
根据需要设置UpdateSourceTrigger 属性