Я думаю о записи Пользовательского элемента управления WPF для моего приложения. Я использую MVVM в своем приложении.
Пользовательский элемент управления может потребовать Свойств Зависимости, которые могут быть установлены мое Родительское Представление. при использовании MVVM идея состоит в том, что Родительское Представление в конечном счете создаст привязку между UserControls
DP с VM родительского представления)
Dependency Properties
потребность, которая будет создана в классе Представления как VM, не наследовалась DependencyObject
. Это означает добавлять код в рамках кода XAML позади.
Я задавался вопросом, можно ли дать совет относительно того, как я должен разработать пользовательский элемент управления при разрабатывании приложения WPF с помощью MVVM...
Случай 1: Если вы создаете этот элемент управления только для потребления в вашем приложении, то вы можете продолжить и создать ViewModel
для него, но тогда вам не нужно создавать DP, ваша ViewModel
может просто реализовать INotifyPropertyChanged
и ваш родительский Vm все еще может привязываться к ним.
В нашем случае, для пользовательских элементов управления мы создали отдельную VM, и ее экземпляр присутствовал в ParentVM
. Поэтому родительское представление будет иметь этот элемент управления в нем и свяжет UserControlVM
с этим элементом управления(ParentVM.UserControlVM
), а usercontrol позаботится о других привязках.
Случай 2: Если ваш элемент управления будет использоваться другими приложениями/разработчиками, и вы не хотите сохранить его простым, тогда продолжайте создавать пользовательские элементы управления, следуя реализации шаблона элемента управления. Так вы сможете создавать элементы управления без внешнего вида и использовать зависимые свойства
. Кроме того, тому, кто использует этот элемент управления, не нужно знать о связанной модели представления и использовать ее.
Некоторые из похожих вопросов/постов:
Вопрос по дизайну WPF (пользовательский элемент управления или mvvm): Вопрос по дизайну WPF (пользовательский элемент управления или mvvm)
Пользовательский элемент управления в WPF с использованием MVVM концепция: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6293b176-e1e9-4610-af49-d53e6d294969/
WPF User Control hell with MVVM and Dependency Properties: WPF User Control hell with MVVM and Dependency Properties