Więc jeśli przechowuję nadrzędny wzorzec ViewModel w potomku ViewModel będzie to przestępstwo? Czy złamie zasady MVVM? Widok Moje dziecko jest oknem z menu kontekstowym. Po wybraniu odpowiedniego elementu menu należy utworzyć nowy widok podrzędny. Tylko rodzic jest odpowiedzialny za stworzenie widoku podrzędnego. Utrzymanie odniesienia do modelu widoku rodzica przyniesie mi wiele dobrego. W tym samym czasie nie chcę łamać reguł wzorca.Czy powinienem zapisać referencję do nadrzędnego modelu widoku w podglądzie podrzędnym?
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;
}
}
Wzorce są tylko wskazówką, aby zacząć; już nie. Tylko jeśli odejdziesz od wzorca, powinieneś rozejrzeć się i zobaczyć, czy wybrałeś niewłaściwy wzór. –
Wzory nie są przeznaczone do tworzenia architektury, mają na celu rozwiązywanie problemów, które mogą pojawić się w architekturze. Najprostszym sposobem na zapewnienie celu biznesowego i uczciwości jest właściwa droga. – Greg
'Więc jeśli przechowuję nadrzędny wzorzec ViewModel w potomku ViewModel będzie to przestępstwo' - Absolutnie NIE. Kto Ci to powiedział? Jest całkowicie OK, że KAŻDY ViewModel ma odniesienie do KAŻDEGO innego ViewModel (o ile nie zawiera odwołań do Elementów UI). Ideą MVVM jest oddzielenie prezentacji od zachowania, a nie tworzenie wielu ograniczeń, które uniemożliwiają pisanie czystego kodu. –