调用PresentationTraceSources.DataBindingSource.Listeners.Clear()会禁用哪些WPF数据绑定调试消息?
关于
PresentationTraceSources.DataBindingSource.Listeners.Clear()的影响范围 你用的这段代码会全局清除WPF应用中所有数据绑定相关的调试跟踪监听器,这意味着所有原本会输出到调试窗口的绑定类消息都会被禁用,不止是你遇到的ConvertBack格式错误。具体来说,以下类型的消息都会消失:
- 绑定初始化阶段的跟踪信息:比如绑定首次关联到目标控件、解析数据源属性时的日志
- 绑定路径解析错误:例如找不到绑定Path对应的属性、属性没有公开的get/set访问器的错误
- 值转换相关的异常:包括
IValueConverter的Convert或ConvertBack方法抛出的所有异常(像你碰到的FormatException就是这类) - 绑定同步失败的消息:比如数据源属性更新后无法同步到目标控件,或者用户在控件中输入的值无法同步回数据源的错误
- 绑定验证错误:除了转换异常,自定义
ValidationRule返回的验证失败消息也会被屏蔽 - 空值或特殊值处理的警告:比如绑定到
null值时的提示、目标属性无法接受null的警告
需要注意的是,这个操作是全局生效的——整个应用里所有XAML或代码创建的数据绑定,都不会再输出任何调试跟踪消息。如果之后你想只屏蔽特定类型的错误(比如只过滤格式异常),可以考虑添加自定义的跟踪监听器,在监听器里过滤掉不需要的消息,而不是直接清除所有监听器。
内容的提问来源于stack exchange,提问作者Dmitresky
相关产品推荐
相关产品推荐

