Я пытаюсь найти оптимальную практику для создания моделей и сервисов просмотра (служба просто ведет переговоры с сервером и возвращает данные обратно, чтобы просмотреть модель). Я видел два разных подхода.WPF - Использование поведения для создания модели представления и сервисов
- Используя вид модели локатора
- Использование поведения (я не уверен, если это хороший подход)
Для второго подхода, можно определить поведение на UserControl и прикрепить событие, создать экземпляр модели представления и экземпляр службы и объединить их все вместе.
protected override void OnAttached()
{
var service = Activator.CreateInstance(ServiceType)
var viewModel = Activator.CreateInstance(ModelType);
base.AssociatedObject.DataContext = viewModel;
base.OnAttached();
}
и в вашем UserControl XAML
<i:Interaction.Behaviors>
<be:ViewModelBehavior ViewModelType="{x:Type vm:ViewModel1}" ServiceType="{x:Type serv:Service1}"/>
</i:Interaction.Behaviors>
Является ли это хорошее использование поведения, или я должен просто использовать ViewModel шаблон локатора.
Ваше поведение - это не что иное, как ViewModelLocator, реализованный как поведение. Также совершенно непонятно, что вы понимаете в ViewModelLocator. В общем, это любой компонент, который позволяет вам получить доступ к экземплярам viewmodel и имеет много разновидностей. – Liero
Я смотрю на реализацию MVVM light для локатора взглядов модели. Вы предлагаете, чтобы 1-й подход был лучше? –