Wpf的数据绑定(一)
来源:互联网 发布:多线程编程java 方法 编辑:程序博客网 时间:2024/06/06 01:27
刚刚入职一家公司,公司是做WPF开发的,之前一直做Web从没有接触过WPF。最近在看公司源码,因为项目中用了很多数据绑定(<img alt="再见" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/bye.gif" /><span style="color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); ">比起其他奇怪的框架,我只看得懂那是数据绑定~_~ 所以我就从数据绑定学起</span>)
这一次先讲以下2个,就拿textbox做示范
1.textbox绑定一次性后台固定数据
2.textbox绑定后台数据实现数据更新,textbox更新
1.一次性绑定数据
xmal代码:
<Grid>
<TextBox Text="{Binding MyName}"></TextBox>
</Grid>
没错 它就只有一个textbox 在Text里绑定了一个后台的属性
后台代码:
private string _name;
public string MyName { get { return _name; } set { _name = value; } }
public DataBind()
{
this.DataContext = this;//这句是关键
_name = "123";
InitializeComponent();
}
运行结果:
一个很简单了小例子
2.交互更新:
xmal代码:
<pre name="code" class="plain"> <Grid> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <TextBox Text="{Binding MyName}" Grid.Row="0"></TextBox> <Button Click="Button_Click" Content="数据变化" Grid.Row="1"></Button> </Grid>
放置了一个textbox和一个btn
后台代码:
public partial class DataBind : Window,INotifyPropertyChanged { private string _name; public string MyName { get { return _name; } set { _name = value; OnPropertyChanged("MyName"); } } public DataBind() { this.DataContext = this; _name = "123"; InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { MyName =(int.Parse(MyName)+1).ToString(); } public event PropertyChangedEventHandler PropertyChanged; public virtual void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }
初始状态
单击按钮之后
下面我们来具体分析一下实现原理
首先是INotifyPropertyChanged接口
INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。
例如,考虑一个带有名为FirstName 属性的 Person 对象。若要提供一般性属性更改通知,则Person 类型实现 INotifyPropertyChanged 接口并在FirstName 更改时引发 PropertyChanged 事件。
若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列任一功能:
实现INotifyPropertyChanged 接口(首选)。
为绑定类型的每个属性提供更改事件。
上述这两个功能不要同时实现。
提供一些关于接口的链接:http://www.cnblogs.com/beginor/archive/2012/08/13/2636418.html
- Wpf的数据绑定(一)
- WPF中的数据绑定(一)
- WPF TreeView 的数据绑定(分层)
- WPF学习笔记:(一)数据绑定与DataContext
- 【wpf】wpf对数据的绑定验证
- wpf的datagrid绑定数据
- WPF数据绑定的学习
- WPF数据绑定(二)
- WPF数据绑定(三)
- C# WPF中DataGrid的数据绑定(Binding)
- WPF与MVVM的实现(二)数据绑定
- WPF TextBox绑定数据的简单应用
- WPF的数据绑定笔记摘录
- WPF PasswordBox.Password 的数据绑定
- WPF combox数据绑定的问题
- WPF的TreeView数据绑定基础
- WPF 数据绑定需要注意的地方
- WPF学习笔记:ComboBox的数据绑定
- 如何在thunderbird中接受outlook会议请求
- 特殊排列的算法
- C语言-内存操作
- iOS开发UI篇—程序启动原理和UIApplication
- C语言-时间操作
- Wpf的数据绑定(一)
- 微信开发网页授权OAuth2.0注意事项
- 如何删除activity中的contentView
- C语言-位运算
- MongoDB数据的安装与启动
- LeetCode 29 - Divide Two Integers
- 重要网址
- C语言-文件模块与引用
- 链表学习关键点