Comment appeler des fonctions dans un modèle de vue à partir d'autres modèles de vue?

Mon programme est composé d'un TreeView et deux contentPresenters au niveau du sol. Le mainWindow, TreeView, et chaque contentPresenter ont tous leurs propres viewmodel.

Je voudrais appeler une fonction dans la mainWindowViewModel de la TreeViewViewModel.

J'ai besoin de le faire parce que la mainWindowViewModel contrôles de ce qui est affiché dans la contentPresenters, et je voudrais mettre à jour manuellement l'affichage.

Je devine que je voudrais faire quelque chose comme ça...

TreeViewViewModel:

public class TreeViewViewModel
{
     //Do I need to declare the MainWindowVM?

     public TreeViewViewModel() { ... }

     private void function()
     {
          //Command that affects display

          //Manually call function in MainWindowVM to refresh View
     }
}

J'ai essayé d'accéder à la MainWindowVM de la TreeViewViewModel en utilisant:

public MainWindowViewModel ViewModel { get { return DataContext as MainWindowViewModel; } }

Mais il ne fait pas beaucoup de sens. parce que le MWVM n'est pas le DataContext de la TreeViewViewModel.

OriginalL'auteur Eric after dark | 2013-10-22