只是學習WPF數據綁定,並在我的理解有差距。我在StackOverflow上看到過一些類似的問題,但我仍然在努力確定我做錯了什麼。WPF DataBinding在代碼隱藏中的標準CLR屬性
我有一個簡單的人類與名字和姓氏屬性(標準CLR屬性)。我的Window類中也有一個標準的CLR屬性,用於公開一個Person實例。
我已經有了一些XAML,有兩種綁定方法。第一部作品,第二部沒有。 任何人都可以幫助我理解第二種方法失敗的原因嗎?輸出日誌中沒有綁定錯誤消息。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300"
DataContext="{Binding RelativeSource={RelativeSource Self}, Path=MyPerson}">
<StackPanel>
<Label>My Person</Label>
<WrapPanel>
<Label>First Name:</Label>
<Label Content="{Binding RelativeSource={RelativeSource AncestorType=Window, Mode=FindAncestor}, Path=MyPerson.FirstName}"></Label>
</WrapPanel>
<WrapPanel>
<Label>Last Name:</Label>
<Label Content="{Binding MyPerson.Surname}"></Label>
</WrapPanel>
</StackPanel>
編輯:好,非常感謝這麼遠。我已經改變了第二表達式:
<Label Content="{Binding Surname}"></Label>
我仍然無法得到它的工作雖然!
嘗試添加此命名空間的xmlns:診斷=」 CLR的命名空間:System.Diagnostics程序;裝配= WindowsBase」 並添加綁定診斷:PresentationTraceSources.TraceLevel =高看綁定錯誤是什麼。你的綁定應該看起來像Content =「{Binding Surname,diag:PresentationTraceSources.TraceLevel = High}」 – 2010-05-28 12:23:43
每當你有一個數據綁定錯誤 - 不,每當你調試任何使用數據綁定的WPF應用程序時,有VS的輸出窗口打開並在屏幕上可見,這樣你就可以看到綁定寫入它的許多錯誤消息,當它不工作時。 – 2010-05-28 18:53:57
此問題的標題應該正確,以讀取「WPF DataBinding to * XAML *中的標準CLR屬性」。在代碼隱藏中綁定是一個完全不同的問題。 – kpozin 2010-10-06 21:11:29