При внедрении ViewModel в приложении WPF архитектуры Model-View-ViewModel, похоже, есть два основных варианта, как сделать его привязываемым к данным. Я видел реализации, которые используют DependencyProperty
для свойств, которые View связывает, и я видел вместо этого ViewModel вместо INotifyPropertyChanged
.INotifyPropertyChanged или DependencyProperty в ViewModel
Мой вопрос в том, когда я должен отдать предпочтение одному другому? Существуют ли различия в производительности? Действительно ли это хорошая идея предоставить зависимости ViewModel для WPF? Что еще мне нужно учитывать при принятии дизайнерского решения?
Может ли кто-то изменить опечатку «DependencyPropterty» на «DependencyProperty»? – Sung 2009-02-22 06:04:12
см. Http://stackoverflow.com/questions/1329138/how-to-make-databinding-type-safe-and-support-refactoring/1333874#1333874 для компилятора проверенного способа реализации INotifyPropertyChanged. Избегайте наличия имен свойств в качестве магической строки. – 2009-08-26 11:57:32
Как правило, существует основное различие между свойством зависимости и нормальным свойством в классе, который реализует INotifyPropertyChanged. Свойства зависимостей могут быть исходными или целевыми в привязке данных, но нормальные свойства с поддержкой INotifyPropertyChanged могут использоваться только как исходные. Таким образом, эти решения не являются полностью взаимозаменяемыми. Для инфраструктуры привязки данных требуется, чтобы DP был предназначен для работы, но источник может быть либо нормальным свойством с поддержкой INotifyPropertyChanged, либо общим DP. – 2011-08-26 19:37:48