传智播客--数据绑定--INotifyPropertyChanged

INotifyPropertyChanged一般在数据绑定的时候使用。

InotifyPropertyChanged是.net内置的接口,数据绑定时会检测DataContext是否实现了InotifyPropertyChanged,如果实现了,就会监听PropertyChanged,得知属性变化。

可以理解为InotifyPropertyChanged接口用于向客户端发出某一属性值已更改的通知。

class Person:INotifyPropertyChanged
    {
        private int age;
        public int Age
        {
            get
            {
                return age;
            }

            set
            {
                this.age = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("Age"));
                }
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }

.cs文件

 public partial class MainWindow : Window
    {
        private Person p = new Person();
        public MainWindow()
        {
            InitializeComponent();           

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            p.Age++;
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            p.Age = 10;
            txtAge.DataContext = p;
        }
    }

xaml文件

<TextBox Name="txtAge" HorizontalAlignment="Left" Height="23" Margin="82,39,0,0" TextWrapping="Wrap" Text="{Binding Age}" VerticalAlignment="Top" Width="120"/>
<Button Content="Age++" HorizontalAlignment="Left" Margin="271,39,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>

这样点击button可以实现textbox里的数字自增。

时间: 2024-08-29 11:47:32

传智播客--数据绑定--INotifyPropertyChanged的相关文章

传智播客——数据绑定基础

数据绑定基础 Slider:进度条 <Slider Name = "slider1"...></Slider> <TextBox Text = "{Binding Value, ElementName = slider1}"></TextBox> 写一个数据绑定的类: class Person { } 后台: Person p1 = new  Person(); txtName.DataContext = p1; tx

传智播客数据绑定和数据库开发基础(第四季)-杨中科

(一)数据绑定.ListBox.DataGrid SQLServer基础.SQLServer使用主键策略 (二)DataReader.DataSet.参数化查询.防注入漏洞攻击.SQLHelper 用户界面中进行登录判断.输错三次禁止登陆(半小时),用数据库记录ErrorTimes. 数据导入:从文本文件导入用户信息.易错点:Parameter的重复添加.File.ReadAllLines() 数据导出:将用户信息导出到文本文件.File.WriteAllLines() 省市联动选择 手机号码归

传智播客DotNet面试题

技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了, 下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能“以不变应万变”. 回答问题的时候能联系做过项目的例子是最好的,有的问题后面我已经补充联系到项目中的对应的案例了. 1.简述 private. protected. public. internal 修饰符的访问权限.

传智播客揭秘Android 6.0之Data Binding Guide

前言:Data Binding 解决了 Android UI 编程中的一个痛点,官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性.其实在此之前,已经有些第三方的框架(RoboAndroid) 可以支持 MVVM 模型,无奈由于框架的侵入性太强,导致一直没有流行起来. 1.准备: Android Studio 更新到1.3或者更高 2.注意: Data Binding 是一个 support 包 3.新建一个Project: u 修改Project的Bu

传智播客JavaWeb day01

2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C#出生,所有对号入了座. 1.JDK  ==  .Net Framework 都是基础库,但是Java开发工具要手动引入,类似dll引入 2.Content Assist  ==   AutoComplete java里面的快捷键是alt+/,个人还是习惯tab键, 3 junit == 单元测试 4

【传智播客VIP用户专享】Swift教程最新更新

(1)[传智播客VIP用户专享]Swift教程最新更新 特地贡献出来忘帮顶!!(传智内部学院给的) http://pan.baidu.com/s/1jGmRRIu    提取码:i11g 相关资料下载:http://pan.baidu.com/s/1bn7yR3x    提取码:mnqh

【藏龙卧虎】成都传智播客Java就业班火爆开班!

今天早晨成都被一篇乌云笼罩,没想到却是一个阳光普照的日子.今天传智播客成都java培训中心举行了Java就业班开班典礼,看似普通的一个班级却个个非比寻常,学员们不仅Professional,而且还International,很多同学都是计算机专业毕业,已经在外拼搏过几年:而有些学员在外企上班,工资也不低:甚至还有的学员已经在某某机构学完整个课程了,可惜依旧缺乏技术去找工作... ...说起经历,那可是一个比一个传奇,不过那都是过去式,重要是他们现在已经到了成都传智播客,都是带着一份渴望,怀揣着一

成都传智播客IT培训教你一个正确的人生理念

你的人生理念是什么?你一生的目标和追求是什么?你对你的人生有一个什么啊有那个的定位?你希望你以后的生活是什么样样子的?武汉计算机学校教你一个正确的人生理念.刚刚看到了星云大师的一个对于人生理念的一段话,不辞我想写一下我的想法,对于一个90后乃至00后我们搞有一个什么样的人生观,价值观,有一个什么样的.高考毕业对于很多的人来说是一个新的起点,以前的所有将会归零,人生在一个新的层次你又会遇到不一样的人,而进入大学我们18岁了,我们成年了,一个刚进入大学对于外面的世界对于很多的人来说不仅是对于我们的未

2017传智播客python基础班+就业班

2017传智播客python基础班+就业班  地址:http://www.zygx8.com/thread-6085-1-1.html 本课程包含了Python的基础语法和核心编程,以及Python应用中流行的数据库.前端,Web框架,爬虫框架及其分布式策略等技术,包含了丰富的项目案例.适合零基础或有一定Linux和Python基础的学生,特别适合于大专院校计算机专业的学生,学习过各类视频教程的未就业人士以及在职程序员. python基础 linux操作系统基础 1-Linux以及命令 2-li