其中一個更清晰/更簡潔的方式我已經遇到了在WPF調試綁定錯誤往往與(但使用的是舊,破鏈接),目前可以在這裏找到:http://www.zagstudio.com/blog/486#.UhyT8fNwbs0
具體而言,該方法它使用.Net 3.5中引入的調試功能,使用附加的屬性PresentationTraceSources.TraceLevel
,並允許您指定特定的跟蹤級別來調查綁定問題。
這裏總結:
您添加下面的命名空間:
<Window
<!-- Window Code -->
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
/>
而在你的綁定表達式,設置附加屬性。在我的例子中,我使用Cars
對象的列表與Name
屬性,和錯誤地列出的DisplayMemberPath
爲Names
:
<ListBox ItemsSource="{Binding Path=Cars, diagnostics:PresentationTraceSources.TraceLevel=High}" DisplayMemberPath="Names" />
這導致在輸出窗口下面的消息中(發生多次,一個對於每個失敗的綁定):
System.Windows.Data Error: 40 : BindingExpression path error: 'Names' property not found on 'object' ''Car' (HashCode=59988153)'. BindingExpression:Path=Names; DataItem='Car' (HashCode=59988153); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
整個鏈路是值得一讀,但是這是一個特別的技術,我與成功(如果鏈接死亡)的要點。
你的類是否實現了一個名爲'Name'的屬性? – Jehof
@Jehof - 是的,當然。我在這裏學習很有意思,我該如何調試這種情況。 –