C# Visual Studio中目标应用程序UI事件触发的代码中断

C# Visual Studio中目标应用程序UI事件触发的代码中断,c#,wpf,visual-studio,C#,Wpf,Visual Studio,我一直在调试一个WPF应用程序,这是一位先生留给我的,他喜欢做出有趣的架构决策。因此,我很难找到用户单击屏幕菜单项时运行的代码。从视图绑定到viewmodel之后,我看到了一些在启动时初始化的“控制函数”集合(显然,所有具有不同函数的不同控件都必须进入一个集合)。我设法找到了一些由点击触发的代码,但它太深,离点击事件太远,对我来说没有任何用处 这让我想 在Visual Studio中,(我使用的是VS2015),当应用程序未运行时,如果选择“调试->单步执行”,则会触发调试,然后调试器在代码的第

我一直在调试一个WPF应用程序,这是一位先生留给我的,他喜欢做出有趣的架构决策。因此,我很难找到用户单击屏幕菜单项时运行的代码。从视图绑定到viewmodel之后,我看到了一些在启动时初始化的“控制函数”集合(显然,所有具有不同函数的不同控件都必须进入一个集合)。我设法找到了一些由点击触发的代码,但它太深,离点击事件太远,对我来说没有任何用处

这让我想

在Visual Studio中,(我使用的是VS2015),当应用程序未运行时,如果选择“调试->单步执行”,则会触发调试,然后调试器在代码的第一行中断(在我的示例中,是从System.Windows.application继承的类的构造函数调用)


当应用程序已经在运行时,是否有办法做到这一点?假设我启动了一个WPF(或WinForms)应用程序,显示了一个窗口,UI线程正在运行并等待用户输入。用户点击一个按钮,执行一些代码。但是,除非代码中有断点,否则调试器不会对此执行任何操作。正如我所解释的,如果我不知道实际运行的是哪段代码,这可能是一个问题。有没有办法告诉Visual Studio,“听着,如果用户单击了某个东西,请打断此操作触发的(用户)代码的第一行。”这可能吗?

您是否尝试过与snoop鬼混?有一些很好的实用工具来跟踪这样的信息。在按钮绑定中添加一个虚拟的IValueConverter可行吗?这样,如果它绑定到一个RelayCommand(比如),那么您可以在转换器中放置一个断点,并检查执行处理程序的ActionTarget和MethodName。请参阅