c# – 如何传播在WPF数据绑定期间发生的错误和异常?

前端之家收集整理的这篇文章主要介绍了c# – 如何传播在WPF数据绑定期间发生的错误和异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常发现我在应用程序中意外破坏了数据绑定.无论是通过重命名一个属性,而不是在XAML中重命名它,或者由于某种原因抛出异常的属性.

默认情况下,记录数据绑定错误以调试输出,抛出的异常被捕获和抑制.

在调试输出记录后,是否有一个简单的方法来抛出异常?

我想尽快知道数据绑定是否被破坏(理想情况下,在自动化测试中进行),并且不会冒险在人类进行测试之前不会被忽视的机会.

解决方法

经过一些拖延,我终于设定了解决我原来问题的解决方案.

我的解决方案使用自定义TraceListener(最初由John建议)记录到输出窗口.当出现错误时,输出窗口会自动显示并发送到前台.

这是我的TraceListener:

public class ErrorLogTraceListener : TraceListener
{
    public override void Write(string message)
    {
        ...
    }

    public override void WriteLine(string message)
    {
        ...
    }
}

TraceListener在System.Diagnostics中定义.

必须将自定义的TraceListener挂接到要使用的系统中.正确的方法是在注册表中设置一些内容,然后使用App.config文件配置TraceListener.

然而,我发现有一个更容易的方法是以编程方式执行此操作:

ErrorLogTraceListener listener = new ErrorLogTraceListener();
PresentationTraceSources.Refresh();

PresentationTraceSources.DataBindingSource.Listeners.Add(listener);
PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Error;

PresentationTraceSource也在System.Diagnostics中定义.

有关追踪来源的更多信息,请参阅Mike Hillberg的blog.

Bea Stollnitz在她的blog上有一些有用的信息.

猜你在找的C#相关文章