【发布时间】:2013-09-12 01:32:14
【问题描述】:
我收到了来自生产用户的异常报告,该报告源自 IValueConverter 的“Convert”方法。我无法重现此问题。这个特殊的转换器在我们的整个应用程序中使用。我希望能够将异常处理放入转换器中,以便在问题再次发生时捕获问题的正确上下文。从转换器的角度来看,如果没有专门将一些上下文值作为 Convert 方法参数的一部分传递,是否可以知道从哪里访问该转换器?在发生异常的地方专门使用了哪个 xaml 文件?
【问题讨论】:
我收到了来自生产用户的异常报告,该报告源自 IValueConverter 的“Convert”方法。我无法重现此问题。这个特殊的转换器在我们的整个应用程序中使用。我希望能够将异常处理放入转换器中,以便在问题再次发生时捕获问题的正确上下文。从转换器的角度来看,如果没有专门将一些上下文值作为 Convert 方法参数的一部分传递,是否可以知道从哪里访问该转换器?在发生异常的地方专门使用了哪个 xaml 文件?
【问题讨论】:
为了解决这个问题,我建议您在每次使用转换器时传递唯一的ConverterParameter,例如,如果您使用转换器在 View1 中绑定 ContentControl 的内容,您可以这样做:
Content = {Binding Converter={StaticResource BensConvereter}, ConverterParameter = "View1ContenControl"
在异常处理代码中,您可以记录此转换器参数。每当转换器发生故障时,您都会获得有关哪个视图和哪些控件绑定导致转换器失败的日志。
【讨论】: