ViewModel应该继承WPF中的DependencyObject吗

本文关键字:中的 DependencyObject WPF 继承 ViewModel | 更新日期: 2024-07-27 04:37:53

我尝试使用MVVM在WPF中创建一个简单的UserControl。现在我需要为UserControl创建一个依赖属性,所以我尝试在UserControlViewModel中创建依赖属性(我不想在代码后面)。

为了在UserControlViewModel中创建依赖属性,我需要从DependencyObject继承。在UserControlViewModel中继承DependencyObject是一种好的做法吗?也就是说,遵循MVVM设计UserControl是一个好方法吗?

ViewModel应该继承WPF中的DependencyObject吗

如果您创建了一个自定义控件,其属性希望它们是可绑定的(例如以下代码),则不能使用INotifyPropertyChanged,并且必须DependencyObject

<MyUserControl MyDependencyProperty="{Binding PropertyPath}"  />

但当使用DependencyObjects时,您应该记住:

  1. DependencyObjects未标记为可序列化
  2. DependencyObject类覆盖并密封Equals()和CCD_ 15方法
  3. DependencyObject具有线程亲和性只能在创建它的线程上访问。

    • 要查看一个讨论视图模型中INPC和DP实现的好的MVVM示例,请参阅本文。

    • 有关INPC与DP辩论的更多信息,请阅读此博客。