A UserControl
является частью «Представления» в «MVVM», так же как элементы управления TextBox
или ListView
являются частью представления.
Если вы решите использовать MVVM для разработки самого UserControl
или написать его в QBASIC (не рекомендуется), это не нарушает шаблон MVVM для потребителей вашего UserControl
, если они могут выполнять все, что им нужно с вашим UserControl
путем привязки к DependencyProperty
, выставленному на вашем UserControl
. т. е. ваш UserControl
должен предоставлять свойства, от которых зависит (отсюда и название). Как только вы поймете, что это DependencyProperty
внезапно обретет большой смысл, и вы захотите, чтобы они были полезны при изменении обработчиков событий и значений по умолчанию, указанных вами в их конструкторе.
Если ваш UserControl
находится в другой сборке или нет, я не могу понять, как это имеет значение.
При этом многие говорили, что вы будете строить свой UserControl
, используя сам шаблон MVVM, по всем уважительным причинам, которые приводит MVVM, например. помогая другому разработчику, глядя на ваш код. Однако некоторые вещи просто невозможны и / или намного сложнее, сложнее и менее производительно взломать XAML, чтобы сделать это - я не говорю о вашем садовом варианте Add User Form, но, например, о UserControl
, обрабатывающем макет тысяч визуалов. Более того, поскольку вы работаете с вашим View, вы NOT хотите, чтобы ваши ViewModels UserControl
были смешаны с вашими приложениями!
По сути, я говорю, что в MVVM хорошо не использовать MVVM в вашем View!