我们有一个非常大的项目。 Visual Studio调试输出日志包含几个重复的WPF绑定错误。
例如:
System.Windows.Data错误:5:BindingExpression生成的值对目标属性无效。 Value ='NaN'BindingExpression:Path = Width; DataItem ='ContentPresenter'(Name =''); target元素是'ContentPresenter'(Name =''); target属性是'MaxWidth'(类型'Double')
执行某些操作时会打印行。但是,这是一个非常繁重的操作,其中涉及数十个WPF类。
有没有快速找到绑定错误的确切来源?一些可能有帮助的工具?
答案 0 :(得分:5)
您看到的错误是因为控件的MaxWidth
绑定到另一个控件的Width
。 MaxWidth
必须具有明确的数值,但Width
可以有多个非定义值,具体取决于所使用的布局。在这种情况下,源代码管理的宽度为NaN
- 这是MaxWidth
的无效值。这导致错误。
所以,我会在你正在设置MaxWidth="{Binding Width, ElementName=someElement}"
或类似的控件上寻找绑定。
猜测,该绑定已经到位,因为控件包含在布局面板中,如StackPanel
,不会限制其子级的大小,并且有人试图绑定{{1}处理剪辑问题。更好的解决方案是更改为限制其内容大小的面板控件。
在这种情况下,正在执行的操作可能与错误无关,除非它似乎使您的布局无效。