2010-08-03 103 views
6

我們有一個非常大的項目。 Visual Studio調試輸出日誌包含幾個重複的WPF綁定錯誤。 例如:
如何尋找WPF綁定錯誤?

System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='NaN' BindingExpression:Path=Width; DataItem='ContentPresenter' (Name=''); target element is 'ContentPresenter' (Name=''); target property is 'MaxWidth' (type 'Double')

當執行一些動作的行被打印。但是,這是一個非常繁重的操作,涉及數十個WPF類。

有沒有一種快速的方法來找到綁定錯誤的確切來源?一些可能有用的工具?

回答

5

您看到的錯誤是因爲控件的MaxWidth綁定到另一個控件的WidthMaxWidth必須有一個確定的數字值,但Width可能有幾個不確定的值,具體取決於使用的佈局。在這種情況下,源控件的寬度爲NaN - 這是MaxWidth的無效值。這是導致錯誤。

所以,我會尋找一個綁定在一個控制你設置MaxWidth="{Binding Width, ElementName=someElement}",或類似的。

由於控件包含在佈局面板中,如StackPanel,它不限制其子級大小,而有人試圖綁定MaxWidth來處理裁剪問題,因此推測該綁定已到位。更好的解決方案是更改爲限制其內容大小的面板控件。

在這種情況下,正在執行的操作可能與此錯誤無關,只是它似乎無效了您的佈局。