它们显示了DataContext的基类,它实现了INotifyPropertyChanging和INotifyPropertyChanged. INotifyPropertyChanging的原因是:
◦The INotifyPropertyChanged interface is used for change tracking.
◦The INotifyPropertyChanging interface helps limit memory consumption
related to change tracking.
本文未能提供任何特定的引用来证明INotifyPropertyChanging接口的内存消耗声明.关于INotifyPropertyChanging的文章本身就说:
Notifies clients that a property value is changing.
解决方法
在没有INotifyPropertyChanging的世界中,如果消费者需要属性的旧值,它必须抢先缓存它(因为,一旦引发了PropertyChanged事件,它就太晚了,值已经改变了).或者,生产者可以在不同的属性中保留旧值的副本.无论哪种方式,数据始终保持重复.
使用INotifyPropertyChanging,消费者不需要事先缓存任何内容.引发PropertyChanging事件时,它可以获取旧值,知道它将要更改.然后引发NotifyPropertyChanged事件,消费者可以获取新值,对两者执行任何操作,然后删除它们.数据仍然是重复的,但仅限于特定时间点和有限的持续时间.
原文地址:https://www.jb51.cc/csharp/99582.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。