博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
INotitypropertyChanged
阅读量:5256 次
发布时间:2019-06-14

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

WPF数据绑定(要是后台类对象的属性值发生改变,通知在“client界面与之绑定的控件值”也发生改变须要实现INotitypropertyChanged接口)

MainWindow.xaml

 

MainWindow.xaml.cs

 

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace WpfApplication1{    ///     /// MainWindow.xaml 的交互逻辑    ///     public partial class MainWindow : Window    {        Person p1 = new Person();        public MainWindow()        {            InitializeComponent();        }        private void Window_Loaded(object sender, RoutedEventArgs e)        {            p1.Name = "李大钊";            p1.Age = 28;            txtName.DataContext = p1;            txtAge.DataContext = p1;        }        private void button1_Click(object sender, RoutedEventArgs e)        {            p1.Age++;        }        private void button2_Click(object sender, RoutedEventArgs e)        {            MessageBox.Show((p1.Age).ToString());        }    }}

 

 

 

 

Model

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel;namespace WpfApplication1{    ///     /// INotifyPropertyChanged接口是向client发出某一属性值已经更改的通知    /// INotifyPropertyChanged是.net内置的接口,数据绑定DataContext是否实现了INotityPropertyChanged接口,假设实现了,就会监听PropertyChanged得知属性的变化    /// 假设要求后台对象的值发送改变,界面的值也跟着变,则须要实现INotityPropertyChanged接口。而且在对象属性值变化后触发事件    /// 假设说后台对象的值会不变,则没有必要实现这个接口    ///     public class Person:INotifyPropertyChanged    {        private string name;        public string Name        {            get            {                return name;            }            set            {               this.name = value;               if (PropertyChanged != null)               {   //假设Name属性发生了改变,则触发这个事件                   PropertyChanged(this, new PropertyChangedEventArgs("Name"));               }            }        }        private int age;        public int Age        {            get            {                return age;            }            set            {                this.age = value;                //假设有人(数据绑定的对象来监听的)监听这个事件(假设有人监听就是不等于null,假设没人监听这个事件就等于null)                if (PropertyChanged != null)                {                     //假设Age属性发生了改变,则触发这个事件                    PropertyChanged(this,new PropertyChangedEventArgs("Age"));                }            }        }        public event PropertyChangedEventHandler PropertyChanged;            }}

转载于:https://www.cnblogs.com/Jeely/p/11075994.html

你可能感兴趣的文章
codeforces645B
查看>>
The second curriculum design experiment report in spring 2019
查看>>
Java内存模型
查看>>
jms的初步认识
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
机顶盒webview开发调试
查看>>
js中的arguments
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
crypto加密
查看>>
Apache Jackrabbit 2.6.0 发布
查看>>
Reporting Service 2000的一些技巧总结
查看>>
echarts饼图显示百分比
查看>>
C#中的out string temp是什么意思?【转】
查看>>
第十二次作业
查看>>
喜欢的话
查看>>
[jQuery]在WCF 4中如何用JSONP轻松实现跨域Ajax请求
查看>>
JMS消息
查看>>
16位整数,32位整数,64位整数
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
Jenkins里邮件插件触发器配置和Send to Developers到底是什么意思(转)
查看>>