ViewModel应该继承WPF中的DependencyObject吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ViewModel应该继承WPF中的DependencyObject吗?相关的知识,希望对你有一定的参考价值。
我试图使用MVVM在WPF中创建一个简单的UserControl
。现在,我需要为UserControl
创建一个依赖项属性,因此我尝试在UserControlViewModel
中创建依赖项属性(我不想被隐藏在代码的后面)。
为了在UserControlViewModel
中创建依赖项属性,我需要从DependencyObject
继承。在DependencyObject
中继承UserControlViewModel
是一种好习惯吗?也就是说,这是遵循MVVM设计UserControl
的好方法吗?
答案
如果您创建的自定义控件具有希望它们为[[可绑定的属性(例如,以下代码),则不能使用INotifyPropertyChanged
,并且必须使用[C0 ]。
DependencyObject
但是使用<MyUserControl MyDependencyProperty="Binding PropertyPath" />
时应记住:
DependencyObjects
未标记为可序列化。DependencyObjects
类覆盖并密封DependencyObject
和Equals()
方法。- A
GetHashCode()
具有线程相似性-它只能在创建它的线程上访问。
- 要查看一个很好的MVVM示例,该示例讨论了View-Model中INPC和DP的实现,请参见此
DependencyObject
。- 有关INPC与DP辩论的更多信息,请阅读article。
以上是关于ViewModel应该继承WPF中的DependencyObject吗?的主要内容,如果未能解决你的问题,请参考以下文章
WPF 中的 MVVM - 如何提醒 ViewModel 模型中的变化......或者我应该吗?