Maison >développement back-end >C++ >Comment les modèles de vue enfant peuvent-ils appeler des fonctions dans un modèle de vue parent ?
Appel de fonctions dans le ViewModel principal à partir de modèles de vue enfants
Dans des scénarios impliquant plusieurs modèles de vue avec une relation hiérarchique, il peut être nécessaire de invoquez des fonctions dans le modèle de vue principal à partir des modèles de vue enfants. Cet article répond précisément à cette exigence, en fournissant une solution qui exploite les objets délégués.
Considérez le scénario décrit. Un modèle de vue de la fenêtre principale régit le contenu affiché dans les vues enfants. La tâche consiste à mettre à jour manuellement l'affichage en appelant une fonction dans le modèle de vue de la fenêtre principale à partir d'un modèle de vue enfant.
Utilisation d'objets délégués
L'approche de la méthode déléguée utilisée dans la solution et l'article de référence permettent la communication dans n'importe quel scénario parent-enfant. L'accès est possible depuis les modèles de vue enfant vers les modèles de vue parent, depuis le code de fenêtre derrière vers le derrière de code de fenêtre enfant, et même entre les relations de données.
Mise en œuvre
Définir un délégué dans le modèle de vue parent :
public delegate void ReadyForUpdate(); public ReadyForUpdate OnReadyForUpdate { get; set; }
Dans la vue enfant modèle, attachez un gestionnaire au délégué :
public void ReadyForUpdateHandler() { // Call the desired method in the parent view model }
Dans le modèle de vue parent, appelez la méthode le cas échéant :
public void ChildViewModel_OnReadyForUpdate() { // Call your method here UpdateDisplay(); }
Approche alternative
Dans certains cas, une approche plus simple peut suffire. La liaison directe des vues enfants au modèle de vue parent permet un accès direct aux propriétés ICommand dans le modèle de vue parent :
<!-- In a child view --> <Button Content="Click Me" Command="{Binding DataContext.ParentCommand, RelativeSource={RelativeSource AncestorType={x:Type MainWindow}}}" />
Cette méthode suppose que l'instance du modèle de vue parent est définie comme DataContext de la fenêtre principale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!