【问题标题】:What are the tools available for troubleshooting WPF and Silverlight Databinding issues?有哪些工具可用于解决 WPF 和 Silverlight 数据绑定问题?
【发布时间】:2010-10-29 12:13:17
【问题描述】:

一般来说,调试 Silverlight 或 WPF 应用程序的最佳做法是什么,尤其是当您遇到数据绑定错误时?有免费的工具吗?我没有收到任何错误,但我有兴趣找出您作为 Silverlight 和 WPF 专家所采用的方法。

谢谢!

【问题讨论】:

  • 只是评论:我希望 MS 的某个人同意我的观点,即不需要进行这种级别的故障排除。如果 MS 能给我们创建强类型 DataContext 的能力,它几乎都会消失。 (不是说每个 DataContext 都需要强类型,但是既然我们有了 List,谁再使用 ArrayList?有一个 DataContext 不是很好吗?)

标签: wpf silverlight debugging


【解决方案1】:

在 Visual Studio 中,进入
工具 - 选项 - 调试 - 输出窗口,将“数据绑定”设置为“全部”。
当我的绑定不能按预期工作时,这就是我一直使用的:)

从“输出”窗口中,您可以看到失败的绑定的哈希码(以及许多其他信息),然后您可以在任何 DependencyObject 上使用 GetHashCode() 来查找失败的对象(因为您可能知道在哪里看起来这不需要太多时间)。

同时检查转换器的输入值也是一个很好的方法。

【讨论】:

    【解决方案2】:

    Bea Stollnitz 在她的博客上有一篇很棒的帖子:How can I debug WPF bindings? 我只需要使用她的调试想法ValueConverter 一次,但它产生了巨大的不同。

    【讨论】:

    • 我还没有遇到她描述的方法没有解决的绑定问题。
    【解决方案3】:

    Visual Studio 的 Debug 窗口会显示它遇到的任何绑定错误,我之前也使用过 Snoop 来解决 UI 问题

    【讨论】: