WPF:属性改变通知UI展示
先定义一个类用于数据绑定:
class user: INotifyPropertyChanged//INotifyPropertyChanged接口是 WPF/Silverlight 开发中非常重要的接口, 它构成了 ViewModel 的基础, 数据绑定基本上都需要这个接口。 { private string _Name; public string Name { get { return _Name; } set { _Name = value; OnPropertyChanged("Name"); } } //PropertyChangedEventHandler 事件委托。 //所谓“事件委托”,一个事件的本质是一个委托(因为事件是委托类型的)。 //而委托的好处在于它可以动态调用不同类之间(即跨类调用)具备相同函数签名(函数参数顺序、类型、个数相同),且函数返回值必须完全相同的函数。 protected internal virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged; }
前端代码:
"textBox" Text="{Binding Name,Mode=OneWay}" HorizontalAlignment="Center" Height="50" Width="300" TextWrapping="Wrap" FontSize="24" VerticalAlignment="Center" />
后端代码:
private void Window_Loaded(object sender, RoutedEventArgs e) { u = new user(); u.Name = "加载时候的名字"; textBox.DataContext = u; } private void Button_Click(object sender, RoutedEventArgs e) { u.Name = "点击时候的名字!"; }
实现效果:
加载:
点击改变对象值按钮: