免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

解决 WPF/Silverlight 中的数据绑定问题

  • 2010-07-05
  • 本文字数:719 字

    阅读完需:约 2 分钟

WPF 中的数据绑定让人眼前一亮,自从 Visual Basic 3 以来,微软一直致力于将灵活性、健壮性与易用性有机地整合起来。虽然 WPF 并不完美,但它要比其前辈更加近接于这个目标。然而遗憾的是,其失败模型是把双刃剑,它并不会抛出应用崩溃异常,而是将绑定错误直接写到追踪监听器当中。这样,要想找到错误的根源比登天还难。

关于 WPF 中数据绑定的最主要的文档是 Data Binding Overview 。虽说该文档是 WPF 或 Silverlight 开发者的必备读物,但几乎没有谈到调试和问题的解决方法,关于调试只用了一句话的概括。

调试机制 可以为绑定对象设置附加属性 PresentationTraceSources.TraceLevel 以获取关于特定绑定的状态信息。

Karl Shifflett就数据绑定给出了一些建议,但几乎都是泛泛而谈,比如检查DataContext 是否包含了正确的对象等。由于Silverlight 经常要在IDE 外运行,他的这些建议也根本排不上用场。

幸好,一些第三方工具可以在一定程度上帮助我们解决这些问题。Cory Plotts 的Snoop 可以附加到任何.NET 3.5 或4.0 WPF 应用上。一旦加载完毕,它可以给出关于控件树、属性值来自于何处以及数据绑定错误等的相关信息。 Snoop 2.6 位于 CodePlex 上,基于 Microsoft Public License。

另一个工具是 Karl Shifflett 的 Glimpse,它无法附加到 Silverlight 应用上而必须要编译到应用中才行。启动后,它会通过一个浮动窗口通知用户未处理的应用与数据绑定异常。可以从 Karl 的博客上下载 Glimpse for Silverlight

另一个常用的技术是增加一个假值转换器,然后在其中设定断点。Marlon Grech 曾写过一篇文章谈到了如何编写调试转换器。在代码中硬编码断点声明后就不需要手工设置断点了。

查看英文原文: Fixing Data Binding Problems in WPF/Silverlight

2010-07-05 01:371438
用户头像

发布了 88 篇内容, 共 253.8 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容
解决WPF/Silverlight中的数据绑定问题_.NET_Jonathan Allen_InfoQ精选文章