在WPF中,可以将TextBox控件(其他控件也基本一样)与相应的变量进行绑定,做出改变变量则控件也跟着改变的效果。虽然其原理跟原本的消息响应是一样的,只是在外部加了层封装,但就是因为这层封装,使得在编写界面的过程中方便了很多。
首先需要声明一个类,该类用来与控件绑定:
class MyTextshow : INotifyPropertyChanged //绑定对象
{
public string show;//显示
public event PropertyChangedEventHandler PropertyChanged;
public string Show
{
get { return show; }
set
{
show = value;
PropertyChanged(this, new PropertyChangedEventArgs("Show"));
}
}
}
在xaml文件中设置绑定
<TextBox x:Name="textBox" Text="{Binding Path=Show, Mode=TwoWay}" HorizontalAlignment="Left" Height="38" Margin="124,72,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="261"/>
其中,继承的INotifyPropertyChanged类是用来发送消息告诉控件变量的值改变了,控件需要作出调整。其实就相当于原本MFC的时候我们修改完变量后在下面去改控件的参数,只是这边不用写出来而已。该类声明完后,实例化出相应的对象,跟控件绑定如下:
MyTextshow mtextshow = new MyTextshow();
mtextshow.show = "asdasdas";
textBox.DataContext = mtextshow;//textBox为控件名
则后面修改mtextshow变量,控件将自动作出调整。