Я просматривал образцы PRISM 2 для представления о том, как наилучшим образом подходить к новому приложению, над которым я работаю, который будет приложением PRISM 2/WPF. Если посмотреть, в частности, на пример приложения «Вставка изображения», который поставляется с PRISM, я заметил, что все представления реализуют интерфейс, который позволяет презентатору (или ViewModel) взаимодействовать с представлением.MVVM - Должен ли View иметь ссылку на презентатор/ViewModel?
В прошлом я сделал это противоположный путь вокруг, я впрыснуть выступающую в представление, так что представление может непосредственно вызывать к методам на ведущем немного так:
public partial class SomeView : ModuleBase
{
private ISomePresenter _somePresenter;
public SomeView (ISomePresenter somePresenter):this()
{
// Give the view a reference to the presenter
_somePresenter = somePresenter;
// Bind the View to the presenter
DataContext = _somePresenter;
}
private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
// The view can call actions directly on the presenter (OK I should probably use a command for this)
_somePresenter.SomeAction();
}
}
техник выше, казалось мне достаточно разумным, но, глядя на образцы, я начинаю сомневаться в этом подходе. У кого-нибудь есть мнения (не каламбур), чтобы наилучшим образом пойти об этом?
- Добавить выступающее мнение и получить представление взаимодействовать с ведущим
- Добавить вид на ведущий и получить выступающее взаимодействовать с мнением
- что-то совершенно другое, что я не имею думал еще?
Мне было интересно об этом в последнее время. Я почти исключительно использовал DataTemplates, и он начал чувствовать, что DataTemplate - это представление. Это подразумевает, что указание параметра DataType связывает представление с моделью представления. У меня нет проблемы с этим типом связи, но оно противоречило предложению в документе Prism4, в котором говорится: «Точно так же представление в идеале не должно зависеть от какой-либо конкретной реализации модели представления». Для меня вид - это отброшенная часть и в любой момент может быть заменен другим видом. Таким образом, это связано с моделью обзора. – Christo