Como posso definir um ponto de interrupção e ter a parada de código em uma linha dentro de um AttachedCommand?
-
07-07-2019 - |
Pergunta
Na minha XAML eu tenho este comando (que é um AttachedCommand que eu tenho de http://marlongrech.wordpress.com ):
<TextBlock Text="Edit Test Customer">
<Commands:CommandBehaviorCollection.Behaviors>
<Commands:BehaviorBinding Event="MouseLeftButtonDown"
Command="{Binding ClickEditTestCustomer}"/>
</Commands:CommandBehaviorCollection.Behaviors>
</TextBlock>
Em seguida, no comando, se eu definir um breakpoint dentro do ExecuteDelegate código, por exemplo, em "o 'layoutManger ...' linha, ele não pára no ponto de interrupção, mesmo que esse código é executado (eu vejo meu ponto de vista):
ClickEditTestCustomer = new SimpleCommand
{
ExecuteDelegate = parameterValue =>
{
LayoutManager layoutManager = container.Resolve<LayoutManager>();
layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
}
};
Como posso definir um ponto de interrupção e ter a parada de código em uma linha dentro de um AttachedCommand?
Solução
Isso deve funcionar sem qualquer problema. Se você é 100% de certeza que a linha LayoutManager está realmente funcionando, então ele pode ser um problema com o recurso de depuração apenas meu código (JMC). Tente desativar JMC e executar o cenário novamente
- Ferramentas -> Opções -> Depuração -> Geral
- Desmarque a opção "Habilitar Just My Code"
Outras dicas
A resposta foi que eu tinha inadvertidamente copiado no manipulador de eventos ClickEditTestCustomer na duas vezes , que surpreendentemente não produzir um erro e silenciosamente executados apenas na segunda instância:
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());
}
};