WPF + MVVM:如何在需要DependencyProperty时使用普通的ViewModelBase

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

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

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

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


一般来说,正确设计的控件不应该要求绑定到DependencyProperty ,因为DP可以绑定到任何属性而没有问题。 因此,我会重新审视这是否是真正的控制实施中的一个错误,并予以纠正。

但是,如果你必须这样做,意识到你将违反MVVM - 在ViewModel中使用DependencyObject就其本质而言,将视图特定的框架元素注入到VM中。 一旦你决定做这件事,你可以始终让你的ViewModel公开一个DependencyObject作为一个属性,并绑定到DependencyObject上定义的DependencyProperty,而不是直接绑定到你的虚拟机的属性。

链接地址: http://www.djcxy.com/p/56167.html

上一篇: WPF+MVVM: How to use plain old ViewModelBase when DependencyProperty is needed

下一篇: Binding to base viewmodel command from View