博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据绑定(一)一个简单的例子
阅读量:6672 次
发布时间:2019-06-25

本文共 1199 字,大约阅读时间需要 3 分钟。

原文:

控件是用来展示数据的,而不是用来存储数据的

如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源(Source)和目标(Target),数据从哪里来哪里就是源,Binding就是加载中间的桥梁,Binding目标就是数据要到哪儿去,一般情况下,Binding源是逻辑层的对象,Binding目标是UI层的控件对象,这样,数据就会源源不断通过Binding送到UI层,也就完成了数据驱动UI的过程。

如果想让作为Binding源的对象具有自动通知Binding自己属性值已经变化的能力,就需要让类实现INotifyPropertyChanged接口并在属性的set语句中激发PropertyChanged事件。

一个简单的Binding例子,首先定义一个Student类

class Student : INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        private string m_Name;        public string Name        {            get { return m_Name; }            set            {                m_Name = value;                if (PropertyChanged != null)                {                    PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Name"));                }            }        }    }
界面上添加一个TextBox和一个Button

后台用C#代码将Name属性绑定到TextBox1上

Student stu = new Student();            Binding binding = new Binding();            binding.Source = stu;            binding.Path = new PropertyPath("Name");            BindingOperations.SetBinding(textBox1, TextBox.TextProperty, binding);
这样,当stu对象的Name属性发生变化时,textBox1中的内容就可以自动发生变化了

哪个元素是希望通过binding送到UI的呢?这个属性就称为Binding的Path

转载地址:http://okgxo.baihongyu.com/

你可能感兴趣的文章
Python模块调用时的路径查找
查看>>
.NET 中 Image 转 Icon
查看>>
因第三次月考而引起的
查看>>
数据库系统简介
查看>>
notify丢失、虚假唤醒
查看>>
VS2010测试解读-读懂那些文件们
查看>>
P1158 导弹拦截
查看>>
3D向2D投影
查看>>
批量删除,只留前十条数据。
查看>>
【数据结构第三周】树知识点整理(上)
查看>>
python 2.7 升级到 3.5
查看>>
script加defer="defer" 的意义
查看>>
3、偶像密室杀人事件
查看>>
2018-2019-2 网络对抗技术 20165335 Exp3 免杀原理与实践
查看>>
div高度自适应
查看>>
JS 实现百度搜索功能
查看>>
图像出增强之锐化---拉普拉斯锐化
查看>>
python PIL相关操作
查看>>
常用数据结构及复杂度
查看>>
poj3278 Catch That Cow
查看>>