Je suis un peu nouveau pour MVVM. Je ne suis pas sûr de la meilleure façon de faire ce que j'essaie de faire.Bonne façon d'accéder à un modèle de vue à partir d'un modèle de vue existant
Voici le scénario:
J'ai une machine virtuelle qui va afficher une autre fenêtre. Je peux appeler myNewWindowView.Show()
, mais d'abord j'ai besoin de définir des données dans la VM de ma nouvelle fenêtre.
Devrais-je exposer à la fois le myNewWindowView
et le NewWindowViewModel
au ViewModel appelant?
Voici un exemple:
class MainVM
{
public void FindCustomer(string nameParial)
{
List<Customer> customers = ServiceCall.GetCustomers(nameParital);
// This is the part I am not sure how to do. I am not sure if this
// View Model should have a reference to a different view model and
// the view too.
myNewWindowViewModel.CustomerList = customers;
myNewWindowView.Show();
}
}
Sonne bien, mais sonne aussi flou. Pouvez-vous me montrer un exemple de la façon dont vous feriez mon exemple? (C'est à dire avoir une fenêtre ouverte une autre avec des données passées entre eux.) – Vaccano
Je vais essayer. Je vais probablement devoir le réparer plus tard, comme je le fais depuis mon téléphone :) –
Cela semble bien, sauf que mon 'CustomerListView.DataContext' est défini sur mon' CustomerListViewModel'. Si je définis sur le résultat de 'FindCustomer' alors je perds l'installation MVVM pour cette vue. – Vaccano