我们都可以在 Visual Studio 输出窗口中看到运行时
BindingExpression
错误。但是我们可以在运行的应用程序本身中捕获这些事件吗?我听说 WPF 跟踪...这与此设施有关吗?此外,System.Windows.Data
命名空间不包含记录的事件(如BindingExpression
错误事件),为什么?
你的第一个问题的答案是“不是真的”。
[2009 年有一篇博客文章更详细地介绍了调试这种情况的细节,但它已不存在,因此该链接已从此答案中删除。]
事实上,这并不完全正确。是的,绑定逻辑是动态的,并且它在自己的管道中,很难遵循。但是,我发现了 Jason Bock 写的这篇很棒的博客文章。
http://www.jasonbock.net/jb/Default.aspx?blog=entry.0f221e047de740ee90722b248933a28d
TL;DR:Jason 有一个类,可以提供将任何绑定错误捕获为事件的方法。
是的,您可以使用 WPF 跟踪捕获这些事件。这在这个答案中得到了很好的解释。事实上,我建议关闭这个问题作为另一个问题的重复。