Como posso definir um ponto de interrupção e ter a parada de código em uma linha dentro de um AttachedCommand?

StackOverflow https://stackoverflow.com/questions/1421664

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?

Foi útil?

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());
    }
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top