Как я могу установить точку останова и сделать остановку кода на строке внутри AttachedCommand? - PullRequest
1 голос
/ 14 сентября 2009

В моем XAML у меня есть эта команда (которая является AttachedCommand, которую я получил от http://marlongrech.wordpress.com):

<TextBlock Text="Edit Test Customer">
    <Commands:CommandBehaviorCollection.Behaviors>
        <Commands:BehaviorBinding Event="MouseLeftButtonDown" 
                                   Command="{Binding ClickEditTestCustomer}"/>
    </Commands:CommandBehaviorCollection.Behaviors>
</TextBlock>

Затем в команде, если я установлю точку останова внутри кода ExecuteDelegate , например. в строке "layoutManger ..." он не останавливается на точке останова, даже если этот код выполняется (я вижу свое мнение):

ClickEditTestCustomer = new SimpleCommand
{
    ExecuteDelegate = parameterValue =>
    {
        LayoutManager layoutManager = container.Resolve<LayoutManager>();
        layoutManager.DisplayViewAsPane("EditCustomer", "Edit Customer", new EditCustomerView());
    }
};

Как установить точку останова и сделать остановку кода на строке внутри AttachedCommand?

Ответы [ 2 ]

1 голос
/ 14 сентября 2009

Это должно работать без проблем. Если вы на 100% уверены, что строка LayoutManager действительно запущена, то это может быть проблема с функцией отладки только моего кода (JMC). Попробуйте отключить JMC и снова запустить сценарий

  • Инструменты -> Опция -> Отладка -> Общие
  • Снимите флажок «Включить только мой код»
0 голосов
/ 14 сентября 2009

Ответ состоял в том, что я случайно скопировал в обработчик событий ClickEditTestCustomer в дважды , что на удивление не выдало ошибку и тихо выполнило только второй экземпляр:

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());
    }
};
...