1

私のXAMLには、次のコマンドがあります (これはhttp://marlongrech.wordpress.comから取得した AttachedCommand です):

<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 内の行でコードを停止するにはどうすればよいですか?

4

2 に答える 2

1

これは問題なく動作するはずです。LayoutManager 行が実際に実行されていることを 100% 確信している場合は、デバッグ機能の Just my Code (JMC) に問題がある可能性があります。JMC を無効にして、シナリオを再度実行してみてください。

  • ツール -> オプション -> デバッグ -> 一般
  • 「自分のコードのみを有効にする」のチェックを外す
于 2009-09-14T14:28:50.713 に答える
0

答えは、イベント ハンドラーClickEditTestCustomer2 回誤ってコピーしてしまったというものでした。これは驚くべきことに、エラーを生成せず、2 番目のインスタンスのみを静かに実行しました。

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());
    }
};
于 2009-09-14T14:57:35.070 に答える