Comment définir un point d'arrêt et faire en sorte que le code s'arrête sur une ligne à l'intérieur d'une commande attachée?
-
07-07-2019 - |
Question
Dans mon XAML , j'ai cette commande (commande attachée que j'ai reçue de http://marlongrech.wordpress.com ):
<TextBlock Text="Edit Test Customer">
<Commands:CommandBehaviorCollection.Behaviors>
<Commands:BehaviorBinding Event="MouseLeftButtonDown"
Command="{Binding ClickEditTestCustomer}"/>
</Commands:CommandBehaviorCollection.Behaviors>
</TextBlock>
Ensuite, dans la commande, si je définis un point d'arrêt dans le code ExecuteDelegate , par exemple. sur " le "layoutManger ..." " ligne, il ne s’arrête pas sur le point d’arrêt même si ce code est exécuté (je vois ma vue):
ClickEditTestCustomer = new SimpleCommand
{
ExecuteDelegate = parameterValue =>
{
LayoutManager layoutManager = container.Resolve<LayoutManager>();
layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
}
};
Comment définir un point d'arrêt et laisser le code s'arrêter sur une ligne à l'intérieur d'une commande attachée?
La solution
Cela devrait fonctionner sans aucun problème. Si vous êtes à 100% sûr que la ligne LayoutManager est en cours d'exécution, le problème peut provenir de la fonction de débogage, juste de mon code (JMC). Essayez de désactiver JMC et d'exécuter à nouveau le scénario
- Outils - > Option - > Débogage - > Général
- Décochez la case "Activer uniquement mon code" .
Autres conseils
La réponse était que j'avais copié par inadvertance le gestionnaire d'événements ClickEditTestCustomer dans deux fois , ce qui, de manière surprenante, n'a pas généré d'erreur et n'a exécuté que la deuxième instance:
ClickEditTestCustomer = new SimpleCommand
{
ExecuteDelegate = parameterValue =>
{
LayoutManager layoutManager = container.Resolve<LayoutManager>();
layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
}
};
ClickEditTestCustomer = new SimpleCommand
{
ExecuteDelegate = parameterValue =>
{
LayoutManager layoutManager = container.Resolve<LayoutManager>();
layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
}
};