2011-01-20 102 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