Каков наилучший подход к назначению контекста данных с использованием MVVM?

Я искал лучший подход для установки свойства контекста данных. Я нашел три пути

  • Назначьте контекст данных в представлении (либо на XAML, либо на коде сзади).

  • Назначить контекст данных в ViewModel через конструктор.

  • Используйте некоторую конфигурацию, которая позволяет просматривать и просматривать ссылку на модель и связывать контекст данных во время выполнения через некоторые классы инфраструктуры.

Какой из них лучший вариант с точки зрения слабосвязанного, поддерживаемого? Или есть лучший подход?

Ответ 1

Мне лично нравится этот подход, потому что мне приходится писать меньше кода:). В основном он использует IValueConverter для поиска, для просмотра которого каждый раз, когда элемент управления wpf должен визуально представлять ViewModel, а IValueConverter устанавливает для вас datacontext. Он также показывает вам, как создать datatemplate, который позволяет вам потребовать от WPF использовать этот конвертер по умолчанию, примерно так:

<DataTemplate DataType="{x:Type ViewModels:ViewModelBase}">
    <ContentControl Content="{Binding Converter={StaticResource MyConverter}}"/>
</DataTemplate>

Ответ 2

4. путь - это DataTemplate.

Я думаю, что лучший подход - это тот, который лучше всего подходит в вашей нынешней ситуации.

Если у меня есть первый динамический сценарий viewmodel, я использую datatemplate/contentpresenter или с представлением сначала я прохожу один и т.д....