【发布时间】:2014-09-02 15:37:23
【问题描述】:
我开始为 Windows Phone 8 学习 LINQ-to-SQL,并在 MSDN 上看到了 this 文章。
他们展示了DataContext 的基类,它实现了INotifyPropertyChanging 和INotifyPropertyChanged。 INotifyPropertyChanging 的原因是:
◦INotifyPropertyChanged 接口用于更改跟踪。
◦INotifyPropertyChanging 接口有助于限制内存消耗 与变更跟踪有关。
这篇文章没有给出任何具体的参考来证明INotifyPropertyChanging 接口的内存消耗是合理的。 INotifyPropertyChanging 上的文章本身只是说:
通知客户端属性值正在更改。
有人可以向我解释一下这个接口如何限制应用程序的内存占用,只需通知属性值即将更改(甚至不限制更改发生)吗?
【问题讨论】:
-
也许你的意见会被听到here。
-
同意,这是一个内容相当贫乏的 API 文档页面。我不熟悉那个界面,但我最近提出了一个关于绑定依赖属性的问题,并认为您可能偶然发现了一个潜在的答案。
-
没有多大意义。当你不使用
INotifyPropertyChanged.NET uses the much more heavyPropertyDescriptor来跟踪更改时。但据我所知,它适用于我提到的那个,而不是INotifyPropertyChanging,所以不知道他们为什么写这个。 -
@Okuma.Scott 事实上,我为 WPDev 用户的声音创建了一个,wpdev.uservoice.com/forums/110707-docs/suggestions/…
-
这是主观的,但可以猜测。通过推动客户端代码检测更改的负担,框架不必再保留旧数据并自行检测更改。当然,这使得它使用更少的内存。并使数据绑定更加高效。但是,没有 INotifyPropertyChangeReverted,所以它不像是小菜一碟。
标签: c# .net windows-phone-8 linq-to-sql