为什么要将TextBox绑定到变量
开发程序中TextBox是常用控件,用来显示信息,在后台代码控制中经常会对TextBox.Text属性进行修改,目的是为了让控件显示我们想要的内容,频繁修改每次都调用的话比较麻烦,也还会出现一些不必要的错误,因此,将其text属性绑定到变量,后期使用起来就十分便捷。
本文提供一个本人经常使用到的绑定变量的方法,供大家参考借鉴,按照本文步骤即可以实现绑定到变量。
本文将整个过程总结为6个步骤
第一步 前端TextBox绑定
前端代码,主要是在设计界面的时候,需要在TextBox的属性中命名并添加关于绑定的代码;
// 命名并将Text属性绑定到变量
Name="tBox_TimeBegain" ,Text="{Binding Path=TBox_TimeBegain, Mode=TwoWay}"
第二步 新建绑定类
添加绑定类,新建类,并让该类继承与INotifyPropertyChanged类,本文新建的绑定类名为ControlsBinding,添加类成功后需要在类名后面手动添加**:INotifyPropertyChanged**,然后还需要在类里面添加一句代码,这行代码的作用是在绑定变量发生变化时,会主动触发该事件;
class ControlsBinding:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
}
第三步 添加触发函数
需要在.xaml对应的.cs文件下添加一个事件,添加到public MainWindow()之后即可,这个事件和第二步的那行代码作用相同添加的代码不需要做任何修改;
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
第四步 绑定类添加代码
需要在之前新建的绑定类下,添加如下代码,其中tBox_TimeBegain为需要绑定的TextBox的Name,需要注意的是,写这段代码时,一定要注意名称第一个字母的大小写,出错的话,可能就无法实现绑定的效果这一步骤只需要修改变量名即可;
public string tBox_TimeBegain = "00000000000000";//变量初始值
public string TBox_TimeBegain
{
get { return tBox_TimeBegain; }
set
{
tBox_TimeBegain = value;
PropertyChanged(this, new PropertyChangedEventArgs("TBox_TimeBegain"));
}
}
第五步 数据源的指定
这一步需要在需要在.xaml对应的.cs文件下完成三个动作,
第一需要在 public MainWindow()函数中添加一句代码 ,不需要进行任何修改;
public MainWindow()
{
InitializeComponent();
this.DataContext = this; //添加此行代码
}
第二实例化绑定类,与public MainWindow()同级(ControlsBinding为绑定类名)
ControlsBinding binding = new ControlsBinding(); //实例化绑定类
第三在前端.xaml界面下的代码添加Grid_Loaded函数,添加方法为:在前端里面添加,添加后结果如下
<Grid Loaded="Grid_Loaded">
然后在Grid_Loaded函数中,添加代码,将TextBox的数据源指定到实例化后的绑定类;
tBox_TimeBegain.DataContext = binding;
到这里已经完成了绑定的全部工作,可以实现变量值变化,TextBox值随之变化
第六步 绑定变量的调用
这一步是说明一下应该怎样调用绑定好的变量
当为绑定变量进行赋值时,代码编辑如下
binding.TBox_TimeBegain= parMsg;//parMsg为string类型
总结
到这里,已经完成了全部的绑定操作,希望给大家能带来帮助。