Come posso impostare un breakpoint e far fermare il codice su una riga all'interno di un AttachedCommand?
-
07-07-2019 - |
Domanda
Nel mio XAML ho questo comando (che è un AttachedCommand che ho ottenuto da http://marlongrech.wordpress.com ):
<TextBlock Text="Edit Test Customer">
<Commands:CommandBehaviorCollection.Behaviors>
<Commands:BehaviorBinding Event="MouseLeftButtonDown"
Command="{Binding ClickEditTestCustomer}"/>
</Commands:CommandBehaviorCollection.Behaviors>
</TextBlock>
Quindi nel comando, se ho impostato un breakpoint all'interno del codice ExecuteDelegate , ad es. su "quotazioneManger ..." linea, non si ferma sul punto di interruzione anche se quel codice viene eseguito (vedo il mio punto di vista):
ClickEditTestCustomer = new SimpleCommand
{
ExecuteDelegate = parameterValue =>
{
LayoutManager layoutManager = container.Resolve<LayoutManager>();
layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
}
};
Come posso impostare un breakpoint e far fermare il codice su una riga all'interno di un AttachedCommand?
Soluzione
Questo dovrebbe funzionare senza alcun problema. Se sei sicuro al 100% che la linea LayoutManager sia effettivamente in esecuzione, potrebbe essere un problema con la funzione di debug solo il mio codice (JMC). Prova a disabilitare JMC ed esegui di nuovo lo scenario
- Strumenti - > Opzione - > Debug - > Generale
- Deseleziona " Abilita solo il mio codice "
Altri suggerimenti
La risposta è stata che avevo inavvertitamente copiato nel gestore dell'evento ClickEditTestCustomer in due volte , che sorprendentemente non ha prodotto un errore ed eseguito silenziosamente solo la seconda istanza:
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());
}
};