Quindi, se memorizzo il riferimento di ViewModel padre nel ViewModel secondario, sarà un crimine? Interromperò le regole MVVM? La vista di mio figlio è una finestra con un menu di scelta rapida. Quando viene selezionata la voce di menu appropriata, è necessario creare una nuova vista figlio. Il genitore è responsabile solo per creare la vista figlio. Quindi, mantenere un riferimento al modello di visualizzazione genitore, farà molto bene per me. Allo stesso tempo, non voglio rompere le regole del modello.dovrei memorizzare un riferimento al modello di vista genitore nel child viewmodel?
class MainViewModel
{
List<ChildViewModel> _childrenViewModels = new List<ChildViewModel>();
public AddChild(ChildViewModel childViewModel)
{
_childrenViewModels.Add(childViewModel);
childViewModel.Owner = this;
}
}
class ChildViewModel
{
private Child _child;
public MainViewModel Owner { get; set; }
public ChildViewModel(Child child)
{
_child = child;
}
}
Gli schemi sono solo una linea guida per iniziare; non piu. Solo se ti ritrovi lontano dal modello, dovresti guardare e vedere se hai scelto lo schema sbagliato. –
I pattern non sono pensati per creare architettura, ma hanno lo scopo di risolvere i problemi che possono sorgere all'interno dell'architettura. Il modo più semplice per garantire l'obiettivo e l'integrità del business è la strada giusta. – Greg
'Quindi se memorizzo il riferimento di ViewModel del genitore nel figlio ViewModel sarà un crimine' - Assolutamente NO. Chi vi ha detto che? È perfettamente OK che QUALSIASI ViewModel abbia un riferimento a QUALSIASI altro ViewModel (purché non contenga riferimenti a UI Elements). L'idea di MVVM è di separare la presentazione dal comportamento, non creare molte restrizioni che ti impediscono di scrivere codice pulito. –