2013-02-27 80 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,而不是直接綁定到你的虛擬機的屬性。

相關問題