Использование памяти: INotifyPropertyChanged - это интерфейс, который близок к нулевому объему памяти. «Близко к нулю», поскольку я предполагаю, что вы будете писать метод OnPropertyChanged и, возможно, некоторые обработчики событий в других классах (если только вы не просто говорите о привязке к WPF), значит, накладные расходы будут незначительными.
Производительность: DependancyProperties много происходит под обложками. Если вы не напишете самый неэффективный метод OnPropertyChanged, я бы сделал ставку на то, что INotifyPropertyChanged также станет победителем.
Если у вас нет определенной причины для желания/необходимости поведения, предоставляемого DP, я бы просто пошел с INotifyPropertyChanged.
Обновление
Как комментарий упоминает связывание производительность немного быстрее для DPs (15-20% быстрее, но все же лишь разницей менее 50 мс на 1000 привязок) из-за количества, необходимого отражения к поиску/подключению прямых свойств. Это технически отличается от производительности по обновлению элемента пользовательского интерфейса с привязкой к базе данных, к чему привязывался мой комментарий. Но это не значит, что моя ставка все еще правильна. Таким образом, несколько примеров и много инструментов .NET Reflector digger позже выглядят ... неубедительными. Оба пути делают тонну работы под обложками, и я не смог получить никаких примеров, чтобы показать окончательную разницу в производительности обновления.
Я по-прежнему придерживаюсь INotifyPropertyChanged, если у меня нет конкретной потребности в DP, но это было, по крайней мере, интересное упражнение, чтобы еще больше засунуть в ядро WPF. :)
Почему бы вам не объяснить, почему другая статья не предоставила вам ваш ответ или что делает ваш вопрос особенным? –
Производительность и использование памяти? – Will
Когда я нашел ответ сам по другому вопросу (см. Мой ответ), я также нашел ответ Роба Маккриди очень полезным, и именно поэтому я выбрал его ответ и дал ему большие пальцы. Спасибо всем! – 2009-02-20 18:26:49