2021-11-22 WinFrom面试题 Form中的控件与数据可以实现双向绑定吗?

使用DataBing可以实现自动绑定,为Form定义一个实体模型,将控件的属性与实体模型中的属性绑定在一起,当页面控件的属性值改变时,模型中的属性值自动更新,不需要一一再去获取;当模型中的属性值修改时,控件的属性值也会自动更新。

模型基类,实现INotifyPropertyChanged接口,可以通知客户端属性性已更改
public class ViewModelBase : INotifyPropertyChanged

​ {

​ public event PropertyChangedEventHandler PropertyChanged;

​ public void OnPropertyChanged([CallerMemberName] string propertyName="")

​ {

​ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

​ }

​ }

页面的模型:

Public class UserInfo:ViewModelBase

{

​ string userName;

​ public string UserName

​ {

​ get{return userName; }

​ set

​ {

​ userName= value;

​ OnPropertyChanged();

​ }

​ }

int age;

​ public int Age

​ {

​ get{return age; }

​ set

​ {

​ age= value;

​ OnPropertyChanged();

​ }

​ }

}

Form页面 控件绑定:

Form1_Load事件处理程序:

UserInfo userInfo=null;

private void Form1_Load(object sender, EventArgs e)

{

​ userInfo=new UserInfo ();

​ txtUserName.DataBindings.Add(“Text”, userInfo, “UserName”);

​ txtUserAge.DataBindings.Add(“Text”, userInfo, “Age”);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值