正如我们的项目中设置了“将警告视为错误”以尽早发现可能出现的问题,我希望有一个运行时异常以尽早发现它们。
我最近被这个问题困扰,我很高兴有这个。
可以做到吗?如果是,如何?
最佳答案
您可以连接到 PresentationTraceSources
与您自己的听众一起收集:
public class BindingErrorListener : TraceListener
{
private Action<string> logAction;
public static void Listen(Action<string> logAction)
{
PresentationTraceSources.DataBindingSource.Listeners
.Add(new BindingErrorListener() { logAction = logAction });
}
public override void Write(string message) { }
public override void WriteLine(string message)
{
logAction(message);
}
}
然后将其连接到代码隐藏中
public partial class MainWindow : Window
{
public MainWindow()
{
BindingErrorListener.Listen(m => MessageBox.Show(m));
InitializeComponent();
DataContext = new string[] { "hello" };
}
}
这是带有绑定(bind)错误的 XAML
<Grid>
<TextBlock Text="{Binding BadBinding}" />
</Grid>
关于wpf - 如何将绑定(bind)错误转换为运行时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4225867/