一、数据绑定
好处:便于后台数据库数据的存取
步骤:
1、定义一个类,写一些对应的属性,要跟UI中需要显示数据的控件全部一一对应
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
2、将UI的控制布局好,并命好名字
3、new一个该类的实例
private Person p1 = new Person();
4、给要绑定数据的控件设置DataContext等于该实例
txtName.DataContext = p1;
txtAge.DataContext = p1;
5、将UI中的控件的XAML代码中进行属性绑定
<TextBox x:Name="txtName" HorizontalAlignment="Left" Height="23" Margin="139,99,0,0" TextWrapping="Wrap" <span style="font-size:14px;"><span style="color:#ff0000;"><strong>Text="{Binding Name}"</strong> </span></span>VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txtAge" HorizontalAlignment="Left" Height="23" Margin="139,157,0,0" TextWrapping="Wrap" <strong><span style="font-size:14px;color:#ff0000;">Text="{Binding Age}"</span></strong> VerticalAlignment="Top" Width="120"/>
注明: 控件几乎所有的属性都可以进行这样的数据绑定
比如:ToolTip="{Binding Age}" ---鼠标移入控件时显示绑定的数据
这种绑定不是双向绑定,后台数据会随着UI控件的数据变化而变化,但UI的数据不会随着后台数据改变,
想要实现双向绑定(即后台控制界面数据变化),需要类实现一个接口:INotifyPropertyChanged,这个接口在using System.ComponentModel中
然后在属性值发生改变时触发此接口的唯一事件:PropertyChanged
private int _age;
public int Age
{
get { return _age; }
set
{
_age = value;
if(PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Age"));
}
}
}
<