Должны ли ViewModels быть связанными с другими ViewModels и взаимодействовать с ними или им разрешено только взаимодействовать с моделями? Или смесь обоих?ViewModel и изменения модели и наблюдения
Я постараюсь быть более явным с кодом:
Является ли этот код ОК?
public class MainViewModel
{
public MainViewModel(IPeopleService service)
{
var people = service.GetPeople();
People = new ObservableCollection<PersonViewModel>(people.Select(p => new PersonViewModel(p)));
}
public ObservableCollection<PersonViewModel> People { get; set; }
public PersonViewModel SelectedPerson { get; set; }
}
Вы видите, что SelectedPerson является ViewModel, а не моделью.
ОК, но они (авторы MVVM LIBS/рамок) также говорят, что это легко злоупотреблять этот механизм, так Я стараюсь избегать этого. Однако, я думаю, вы правы. Это может быть намного лучше, если вы так сильно не затягиваете ViewModels. Но как это изменить код, который я опубликовал в качестве примера? Что я должен изменить, чтобы сделать это правильно? – SuperJMN
Я отредактировал свой ответ. Кроме того, вы можете передать экземпляр выбранного лица в качестве параметра навигации на страницу, которую вы хотите перемещать. –