黑马程序员数据绑定
来源:互联网 发布:js修改div属性 编辑:程序博客网 时间:2024/06/14 04:35
黑马程序员数据绑定
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
数据绑定后台对象改变前台界面改变
1.定义类.定义属性
Class Person
{
Publicstring Name{get;set;}
Publicint Age{get;set;}
}
2.前台界面如下:
前台数据绑定: XAML中给要进行数据绑定的属性
Text=”{BindingName}”,把控件的Text属性绑定到DataContext指向的p对象的Name属性上
后台代码如下: new 一个类的实例,给要绑定的控件设定DateContexttxtName.DataContext=p;
3.数据绑定效果如下
但是点击Age++按钮
private voidbtnAdd_Click(object sender, RoutedEventArgs e)
{
p.Age++;
}
文本框里的年龄却不会增加
因为普通对象没有”通知我的属性变了”这么一种机制,所以改变对象的属性界面不会变.但是界面改变是有TextChanged之类的事件的,所以改变界面可以同步修改到对象.
4.如果要求后台对象的值发生改变界面跟着改变,则需要实现INotifyPropertyChange接口,并且在属性值变化后触发事件.
//INotifyPropertyChanged是.net内置接口
//数据绑定会检测DataContext是否实现了INotifyPropertyChanged
//如果实现了,就会监听PropertyChanged的属性变化
//修改Person类
5.添加对INotifyPropertyChanged的引用
using System.ComponentModel;
6.添加对接口的实现
public eventPropertyChangedEventHandler PropertyChanged;
7.修改对Person类对INotifyPropertyChanged接口的继承
修改Age和Name的属性添加age和name字段
class Person:INotifyPropertyChange
{
privatestring name;
public string Name
{
get
{
return name;
}
Set
{
this.name=value;
if(PropertyChanged !=null)
{
PropertyChanged(this,new ProperyChangedEventArgs(“Name”));
}
}
}
private int age;
public int Age
{
get
{
returnage;
}
set
{
this.age= value;
if(PropertyChanged != null) //响应事件
{
PropertyChanged(this,newPropertyChangedEventArgs("Age"));
}
}
}
public event PropertyChangedEventHandlerPropertyChanged;
}
8.实现INotifyPropertyChanged接口后的效果
如果后台对象的值不会变,则没必要实现
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
- 黑马程序员数据绑定
- 黑马程序员---数据绑定
- 黑马程序员-几个数据绑定控件的使用
- 【黑马程序员】listbox和datagrid数据绑定(学习笔记)
- 黑马程序员_数据绑定,INotifyPropertyChanged接口,DataContext
- 【黑马程序员】数据绑定的INotifyPropertyChanged接口:监听和同步
- 黑马程序员——wpf数据绑定控件笔记
- 黑马程序员————WPF页面布局及数据绑定
- 黑马程序员学习日记(3)——文件批量重命名程序:One Click数据绑定
- 黑马程序员--数据集
- 黑马程序员-Java中静态绑定和动态绑定
- 【黑马训练营】数据绑定基础
- 黑马程序员-TCP传输数据
- 黑马程序员数据导入导出
- 黑马程序员_元数据
- 黑马程序员—使用DataReader绑定下拉框
- 黑马程序员-day5-数据导入导出
- 黑马程序员——数据库数据操作
- 国内开源的视频播放器
- 黑马程序员常量、枚举、结构、方法、数组、重载、参数,面向过程
- 电子商务O2O不是零售业的“补充”,它将毁灭零售业!
- Format函数
- 使用$.getJSON实现跨域ajax请求示例代码
- 黑马程序员数据绑定
- JBoss jmx-console和web-console的安全设置
- 触摸消息的整体派发流程
- 使用PyRTF的生成RTF文件
- C#中如何将DataTable中的数据导出到Excel
- 如何学好C语言
- 整型与无符号整型 运算时值的转换
- jfeinstein10的SlidingMenu环境的部署
- Bootstrap Popover 隐藏的Javasript方法