属性更改通知(INotifyPropertyChanged)——针对ObservableCollection

摘要:
删除项时,此集合会通知控件。我们知道对集合的操作是CURD,但更新时不提供集合通知。我们需要实现INotifyPropertyChanged接口方案1。

问题

在开发webform中,wpf中的ObservableCollection,MSDN中说,在添加项,移除项时此集合通知控件,我们知道对一个集合的操作是CURD
但是Update的时候没有提供集合通知,也就是说当我Update的时候,虽然"集合内容“已被修改,但是"控件“却没有实现同步更新
即ObservableCollection,ObservableCollection类实现了INotifyPropertyChanged,所以集合“新增”、“修改”会通知,而“修改”,需要T实现INotifyPropertyChanged接口

方案1:INotifyPropertyChanged

传统方式,实现接口INotifyPropertyChanged

public class StudentByINotifyPropertyChanged: INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    //实现INotifyPropertyChanged接口
    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    private string sex;
    private string name;

    public string Sex
    {
        get { return sex; }
        set
        {
            sex = value;
            NotifyPropertyChanged("Sex");
        }
    }

    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            NotifyPropertyChanged("Name");
        }
    }
}

示例代码

https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/PropertyChanged

方案2:采用框架实现好的

mvvmlight的ViewModelBase已实现该方法,使用如下

 
属性更改通知(INotifyPropertyChanged)——针对ObservableCollection第1张

List与ObservableCollection对比

List可检查更改,不能检查增加、删除
ObservableCollection检查增加、删除,不能检查更改

免责声明:文章转载自《属性更改通知(INotifyPropertyChanged)——针对ObservableCollection》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[Android Pro] AndroidStudio IDE界面插件开发(Hello World篇)hosts学习整理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

互联网产品怎么做数据埋点

在互联网产品上线之后,产品和运营人员需要即时了解产品的使用情况,有多少用户,用户使用了哪些功能,停留时长,使用路径。。。等。要回答这些问题,需要有数据,不能拍脑袋想当然。数据怎么得到呢?埋点就是采集数据的重要途径。 数据埋点不是新名词,在电脑网站出来之后就有统计工具,站长们很熟悉的谷歌、百度统计等工具,通过在HTML页面中嵌入它们提供的js代码实现数据采集...

【华为云技术分享】基于华为云IOT及无线RFID技术的智慧仓储解决方案最佳实践系列一

摘要:仓储管理存在四大细分场景:出入库管理、盘点、分拣和货物跟踪。本系列将介绍利用华为云IOT全栈云服务,端侧采用华为收发分离式RFID解决方案,打造端到端到IOT智慧仓储解决方案的最佳实践。 仓储是什么?仓储,是物流生命周期很重要的一部分,首先了解什么物流。 物流,顾名思义“物的流通”,指从物品的供应地向接收地流通,是一个根据实际需要,将运输、核算、储存...

未加载的程序集

错误一个接着一个 蹂躏着我脆弱的心灵。。 未处理的“System.IO.FileNotFoundException”类型的异常出现在Microsoft.Xna.Framework.Game.dll中 其他信息:未能加载文件或程序集“Microsoft.Xna.Framework,Version=2.0.0.0,Culture=neutral,Publick...

“音视频+”时代到来,除了无人机,EasyDSS应用场景还有哪些?

互联网的高速发展,不仅带来了更便捷的生活,也使得一些新兴行业得到了进步。如今,音视频服务已经渗透到了我们生活中的各个场景,道路监控、安防直播、线上课堂直播等,都基于视频流媒体建立了与用户的互联互通。 在日常观看直播的过程中,经常会有用户遇到视频卡顿或者黑屏的状况,一方面是由于目前的音视频直播技术尚存在一定的缺陷,另一方面我们会将这类问题分为两个大类:一类在...

基于Apache Hudi构建数据湖的典型应用场景介绍

1. 传统数据湖存在的问题与挑战 传统数据湖解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化。虽然能够在海量批处理场景中取得不错的效果,但依然存在如下现状问题: 问题一:不支持事务 由于传统大数据方案不支持事务,有可能会读到未写完成的数据,造成数据统计错误。...

微信小程序全屏背景图适配

需求:一张全屏背景图适配不同手机屏幕,图片不变形不裁剪 方案:填充色+图片。其他方案不太行。其他方案参考微信社区:https://developers.weixin.qq.com/community/develop/doc/000eee514f8908ed7d5aef55e51400 #EF1739是填充色,背景图片大小按照设计图写死,布局从上往下,区中...