如何寻找WPF绑定错误?

时间:2010-08-03 14:06:08

标签: c# wpf binding

我们有一个非常大的项目。 Visual Studio调试输出日志包含几个重复的WPF绑定错误。 例如:

  

System.Windows.Data错误:5:BindingExpression生成的值对目标属性无效。 Value ='NaN'BindingExpression:Path = Width; DataItem ='ContentPresenter'(Name =''); target元素是'ContentPresenter'(Name =''); target属性是'MaxWidth'(类型'Double')

执行某些操作时会打印行。但是,这是一个非常繁重的操作,其中涉及数十个WPF类。

有没有快速找到绑定错误的确切来源?一些可能有帮助的工具?

1 个答案:

答案 0 :(得分:5)

您看到的错误是因为控件的MaxWidth绑定到另一个控件的WidthMaxWidth必须具有明确的数值,但Width可以有多个非定义值,具体取决于所使用的布局。在这种情况下,源代码管理的宽度为NaN - 这是MaxWidth的无效值。这导致错误。

所以,我会在你正在设置MaxWidth="{Binding Width, ElementName=someElement}"或类似的控件上寻找绑定。

猜测,该绑定已经到位,因为控件包含在布局面板中,如StackPanel,不会限制其子级的大小,并且有人试图绑定{{1}处理剪辑问题。更好的解决方案是更改为限制其内容大小的面板控件。

在这种情况下,正在执行的操作可能与错误无关,除非它似乎使您的布局无效。