2013-02-27 86 views
1

我正在使用第三方WPF控件,它的MVVM支持依赖于绑定到的VM上的依赖项属性。该控件随附的示例使用派生自DependencyObject的ViewModelBase类,因此一切正常。WPF + MVVM:如何在需要DependencyProperty时使用普通ViewModelBase

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

我的问题是如何使用我的ViewModels这个WPF控件?我猜想我需要的东西就像在一个普通的旧ViewModel中“嵌入一个依赖对象”或“插入依赖属性”。

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

回答

2

通常,正确设计的控件不应该要求绑定到DependencyProperty,因为DP可以绑定到任何属性而没有问题。因此,我会重新审视这是否是真正的控制实施中的一个错误,并予以纠正。但是,如果您必须这样做,意识到您将违反MVVM - 在ViewModel中使用DependencyObject就其本质而言,将视图特定的框架元素注入到VM中。一旦你决定做这件事,你可以始终让你的ViewModel公开一个DependencyObject作为一个属性,并绑定到DependencyObject上定义的DependencyProperty,而不是直接绑定到你的虚拟机的属性。

相关问题