C# TextBox数据绑定的方法
2018-09-20 10:08
666 查看
经常写用一个TextBox显示某个对象,然后编辑之后再保存的程序。以前都是在TextBox_TextChanged事件中修改对象的值,或者保存的时候再读取TextBox.Text属性保存对象的值。这样比较麻烦,而且经常容易出错。后来了解了C#的数据绑定,发现能够很好的解决这个问题。
1. 首先C#的TextBox本身就带数据绑定功能。
下面的代码就是把_myData对象的"TheValue"属性绑定到textBox1和textBox2的"Text"属性。最后一个参数不同:
1)其中DataSourceUpdateMode.OnPropertyChanged表示textBox1.Text发生变化,_myData.TheValue也变化,叫双向绑定。
2)DataSourceUpdateMode.Never表示Text1.Text变化不影响_myData.TheValue的值,是单向绑定。
private void Form1_Load(object sender, EventArgs e) { _myData = new MyData(); textBox1.DataBindings.Add("Text", _myData, "TheValue", false, DataSourceUpdateMode.OnPropertyChanged); textBox2.DataBindings.Add("Text", _myData, "TheValue", false, DataSourceUpdateMode.Never); }
2.也许有人留意到了,为什么上面的叫"双向绑定"呢?如果_myData.TheValue的值变化了,两个文本框的Text会变化吗?不错,仅在 textBox上数据绑定还不叫双向绑定,对象数据变化要通知绑定该对象的控件才行。这样就需要对象实现INotifyPropertyChanged接 口。
public class MyData : INotifyPropertyChanged { private string _theValue = string.Empty; public string TheValue { get { return _theValue; } set { if (string.IsNullOrEmpty(value) && value == _theValue) return; _theValue = value; NotifyPropertyChanged(() => TheValue); } } public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged<T>(Expression<Func<T>> property) { if (PropertyChanged == null) return; var memberExpression = property.Body as MemberExpression; if (memberExpression == null) return; PropertyChanged.Invoke(this, new PropertyChangedEventArgs(memberExpression.Member.Name)); } }
3.好了,数据绑定完成了,看看效果吧。textBox1.Text变化―>_myData.TheValue变化―>textBox2.Text变化。反过来textBox2.Text变化就不是这样了,因为textBox2使用的单向绑定。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- asp.net customdatagrid 绑定数据用到的ItemDataBound 中的HyperLinkColumn 的跳转链接 通过C#后台 处理的方法
- Asp.Net--DropDownList与DataTable数据绑定的方法(C#)[学习笔记]
- c#(winform)中自定义ListItem类方便ComboBox和ListBox添加项完全解决(DropDownList 和Combox 数据绑定的常用方法) .
- C#异步绑定数据实现方法
- C#实现绑定DataGridView与TextBox之间关联的方法
- 关于c#中双主键表数据如何绑定到DataTable的方法(针对于dataset.xsd的特殊情况)
- c#(winform)中自定义ListItem类方便ComboBox和ListBox添加项完全解决(DropDownList 和Combox 数据绑定的常用方法)
- C# WPF TextBox绑定数据的简单应用
- C# 遍历textboxs 绑定相应数据txt1~txtn
- C# TextBox 扩展方法数据验证详细说明
- C# .NET treeView(树形控件)绑定数据的通用方法 (精)
- C#使用DropDownList绑定添加新数据的方法汇总
- [转] C# TextBox、DataGrideView中的数据绑定
- 关于c#中双主键表数据如何绑定到DataTable的方法(针对于dataset.xsd的特殊情况)
- C# TextBox 扩展方法数据验证
- c# 如何向comboBox中绑定数据库中指定的数据信息;
- ASP.NET2.0中 TreeView 和ORACLE 数据绑定的一种方法
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- 如何使用DataBinder.Eval()方法进行数据绑定
- C#中对控件的非代码数据绑定操作(WEB FORM)