2011-01-20 101 views
2

我是WPF數據綁定的新手,並且有點卡住了。
顯然我的文本框沒有正確綁定到我打算的數據元素,我無法弄清楚爲什麼。WPF數據綁定新手

首先在我MainWindow.xaml文件,我宣佈一個對象:

<Window.Resources> 
    <local:Aircraft x:Key="Aircraft"/> 
</Window.Resources> 

此期間MainWindow.InitializeComponent()
創造型飛機的目標

(我可以把一個斷點上飛機的構造驗證)

類別Aircraft定義在.cs文件中,屬性Pilot具有屬性Weight,因此myAircraft.Pilot.Weightint

接下來,我嘗試將文本框綁定到這個屬性:

<TextBox Name="PICWeight" DataContext="{Binding Source={StaticResource Aircraft}, Path=Pilot.Weight}" /> 

應用程序編譯和運行,但是當我把數字文本到文本框中,然後將焦點移到另一個文本框,我希望請參閱setter獲取調用Pilot.Weight(我有一個斷點)。它沒有。

我相信應該有一個從String(從文本框)到int(Weight屬性的類型)的默認ValueConverter,並且該文本框應該具有默認的更新源事件LostFocus

我是否正確指定了綁定?
我需要創建一個ValueConverter,還是明確指定更新事件?
還有什麼我做錯了嗎?

回答

10

您需要的Text屬性綁定,不只是DataContext的,如:

<TextBox Name="PICWeight" DataContext="{Binding Source={StaticResource Aircraft}}" Text="{Binding Path=Pilot.Weight}" /> 

或:

<TextBox Name="PICWeight" Text="{Binding Source={StaticResource Aircraft}, Path=Pilot.Weight}" /> 
+0

嗯,這似乎是它。謝謝! – abelenky 2011-01-20 01:10:27