INotifyPropertyChanged与ViewModel中的DependencyProperty
在Model-View-ViewModel体系结构WPF应用程序中实现ViewModel时,似乎有两个主要选择如何使其可用于数据绑定。 我已经看到使用DependencyProperty
实现视图将要绑定的属性,而我已经看到实现INotifyPropertyChanged
的ViewModel。
我的问题是我应该在什么时候比另一个更喜欢? 是否有任何性能差异? 将ViewModel依赖关系提供给WPF真的是个好主意吗? 做出设计决定时还需要考虑什么?
肯特写了一个有趣的博客关于这个话题:查看模型:POCOs与DependencyObjects。
简短的摘要:
我更喜欢POCO方法。 可以在此处找到实现INotifyPropertyChanged接口的PresentationModel(aka ViewModel)的基类:http://compositeextensions.codeplex.com
根据WPF性能指南,DependencyObjects的性能明显优于实现INotifyPropertyChanged的POCO:
http://msdn.microsoft.com/en-us/library/bb613546.aspx
选择完全基于您的业务逻辑和UI抽象级别。 如果你不想要一个很好的分离,那么DP将为你工作。
DependencyProperties主要适用于VisualElements级别,所以如果我们为每个业务需求创建大量的DP,将不是个好主意。 DP的成本比INotifyPropertyChanged还要高。 当您设计WPF / Silverlight时,尝试设计完全独立的UI和ViewModel,以便在任何时候我们都可以更改布局和UI控件(基于主题和样式)
请参阅这篇文章 - https://stackoverflow.com/questions/275098/what-applications-could-i-study-to-understand-datamodel-view-viewmodel。 该链接有很多对Model-View-ViewModel模式的引用,这与此讨论非常相关。
链接地址: http://www.djcxy.com/p/21233.html上一篇: INotifyPropertyChanged vs. DependencyProperty in ViewModel