ViewModel应该继承WPF中的DependencyObject吗
本文关键字:中的 DependencyObject WPF 继承 ViewModel | 更新日期: 2024-07-27 04:37:53
我尝试使用MVVM在WPF中创建一个简单的UserControl
。现在我需要为UserControl
创建一个依赖属性,所以我尝试在UserControlViewModel
中创建依赖属性(我不想在代码后面)。
为了在UserControlViewModel
中创建依赖属性,我需要从DependencyObject
继承。在UserControlViewModel
中继承DependencyObject
是一种好的做法吗?也就是说,遵循MVVM设计UserControl
是一个好方法吗?
如果您创建了一个自定义控件,其属性希望它们是可绑定的(例如以下代码),则不能使用INotifyPropertyChanged
,并且必须用DependencyObject
。
<MyUserControl MyDependencyProperty="{Binding PropertyPath}" />
但当使用DependencyObjects
时,您应该记住:
DependencyObjects
未标记为可序列化DependencyObject
类覆盖并密封Equals()
和CCD_ 15方法DependencyObject
具有线程亲和性只能在创建它的线程上访问。要查看一个讨论视图模型中INPC和DP实现的好的MVVM示例,请参阅本文。
有关INPC与DP辩论的更多信息,请阅读此博客。