有没有办法从程序生成的绑定中获取错误消息?我只看到例如状态" PathError",但不是失败的原因。
var binding = new Binding(path);
var expression = BindingOperations.SetBinding(this, TestProperty, binding);
if (expression.Status == BindingStatus.PathError)
{
throw new Exception("Invalid binding!"); //why did the binding fail?
}
依赖项属性定义为
private static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test", typeof(object), typeof(DashboardShape));
亚历
答案 0 :(得分:0)
在WPF中查看Binding
错误的方法是在Visual Studio中打开输出窗口。如果尚未输出,则可以从选项对话框中将WPF跟踪打开到输出窗口。您可以按照以下路径找到选项:
工具&gt;选项&gt;调试&gt; <输出窗口> WPF跟踪设置
找到相关选项页面后,您可以将数据绑定设置为关闭以外的值。 警告是一个很好的使用级别。
更新&gt;&gt;&gt;
Binding
错误应该显示在输出窗口中,无论它们是如何创建的,所以你说没有错误似乎很奇怪。但是,在尝试调试Binding
问题时,我还想使用另一个技巧...... DataBindingDebugConverter
:
public class DataBindingDebugConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Debugger.Break();
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
Debugger.Break();
return value;
}
}
只需将此Converter
添加到您遇到问题的Binding
,然后您就可以看到您拥有的数据绑定值。请注意,这将不显示Binding
错误,但会帮助您进行Binding
调试。