WPF&x2B;MVVM:当需要DependencyProperty时,如何使用普通的旧ViewModelBase

WPF&x2B;MVVM:当需要DependencyProperty时,如何使用普通的旧ViewModelBase,wpf,mvvm,viewmodel,dependency-properties,dependencyobject,Wpf,Mvvm,Viewmodel,Dependency Properties,Dependencyobject,我使用的是第三方WPF控件,其MVVM支持依赖于它绑定到的VM上的依赖属性。控件附带的示例使用从DependencyObject派生的ViewModelBase类,因此一切正常 我的ViewModelBase实现INotifyPropertyChanged,由于各种原因,将其更改为DependencyObject是不现实的 我的问题是如何将ViewModels与此WPF控件一起使用?我想我需要的是像“嵌入dependencyobject”或“插入DependencyProperties”这样的东

我使用的是第三方WPF控件,其MVVM支持依赖于它绑定到的VM上的依赖属性。控件附带的示例使用从DependencyObject派生的ViewModelBase类,因此一切正常

我的ViewModelBase实现INotifyPropertyChanged,由于各种原因,将其更改为DependencyObject是不现实的

我的问题是如何将ViewModels与此WPF控件一起使用?我想我需要的是像“嵌入dependencyobject”或“插入DependencyProperties”这样的东西


顺便说一句,我的MVVM应用程序是基于接口的,即SomeViewModel处处都是ISomeViewModel。

通常,一个设计正确的控件不需要绑定到
依赖属性,因为DP可以绑定到任何属性而不会出现问题。因此,我将首先重新考虑这是否真的是控件实现中的一个bug,并纠正它


但是,如果必须这样做,请意识到您将违反MVVM—在ViewModel中使用
DependencyObject
,本质上就是将视图特定的框架元素注入到VM中。一旦确定可以这样做,就可以让ViewModel将DependencyObject作为属性公开,并绑定到DependencyObject上定义的DependencyProperty,而不是直接绑定到VM的属性。

一般来说,一个设计正确的控件不应该要求绑定到
DependencyProperty
,因为DP可以毫无疑问地绑定到任何属性。因此,我将首先重新考虑这是否真的是控件实现中的一个bug,并纠正它

但是,如果必须这样做,请意识到您将违反MVVM—在ViewModel中使用
DependencyObject
,本质上就是将视图特定的框架元素注入到VM中。一旦确定可以这样做,就可以让ViewModel将DependencyObject作为属性公开,并绑定到DependencyObject上定义的DependencyProperty,而不是直接绑定到VM的属性