В зависимости от архитектуры вашего приложения или способа повторного использования компонентов и объектов вы можете выбрать определенную степень независимости от пользовательского интерфейса (в данном случае WPF).
Вот пример моего опыта:
Я немного поработал с WPF,
относительно небольшой проект, где
бизнес-уровень уже определен,
и нам просто нужно было создать пользователя
интерфейс. Конечно, интерфейс
определили свои правила и объекты
что он работал, и потому что
приложение было определено только для
UX мы решили создать свой собственный
конкретные объекты, в основном путем расширения
DependencyObject
(в основном для Data
Binding
целей).
Некоторые люди могут утверждать, что это не хорошо
использовать объекты зависимости, потому что они
не являются сериализуемыми (на самом деле они
являются XAML), они приносят
зависимость от WPF (
System.Windows
пространство имен) и некоторые
другие аргументы. Также,
DependencyObjects
Поддержка других
параметры, такие как прикрепленные свойства
и свойства зависимостей . другие
может использовать например
INotifyPropertyChanged
, если это
имеет смысл, и другие могут сказать, что
все эти шаблоны не принадлежат
другой слой, чем пользовательский интерфейс.
(Если вы хотите узнать больше, есть
какая-то хорошая WPF привязка данных
статьи в библиотеке MSDN,
включая лучшие практики для
производительность и для пользовательского интерфейса)
Плохо, что Microsoft решила добавить некоторые вкусности в пространство имен System.Windows
вместо, например, в System.ComponentModel
, где, по моему мнению, они могли бы быть более полезными (предоставляя все эти важные шаблоны не только для WPF, но и для .NET Framework).
Конечно, это только начало, и многие из нас знают, что в конце эта вещь будет развиваться в правильном направлении. (С риском уйти не по теме: возьмите, например, платформу silverlight 2.0. Это был спешный выпуск, в котором некоторые объекты в модели WPF отсутствовали, а некоторые не были в своем естественном месте.)
В конце концов, все зависит от вас, вашего стиля программирования, ваших архитектурных решений и ваших знаний о технологиях.
Если это кажется более естественным, чем в книге, подумайте why you should
и why should you not
, прежде чем принимать какое-либо решение!