【发布时间】:2011-01-20 00:56:34
【问题描述】:
我是 WPF 数据绑定的新手,有点卡住了。
显然我的文本框没有正确绑定到我想要的数据元素,我不知道为什么。
首先在我的MainWindow.xaml 文件中,我声明一个对象:
<Window.Resources>
<local:Aircraft x:Key="Aircraft"/>
</Window.Resources>
这会在MainWindow.InitializeComponent()期间创建一个Aircraft类型的对象
(我可以通过在 Aircraft 的构造函数上放置断点来验证这一点)
Aircraft 类在.cs 文件中定义,其属性Pilot 具有Weight 属性,因此myAircraft.Pilot.Weight 是int。
接下来,我尝试将一个文本框绑定到这个属性:
<TextBox Name="PICWeight" DataContext="{Binding Source={StaticResource Aircraft}, Path=Pilot.Weight}" />
应用程序编译并运行,但是当我将数字文本放入文本框,然后将焦点移动到另一个文本框时,我希望看到 Pilot.Weight 的 setter 被调用(我有一个断点)。没有。
我认为应该有一个从 String(来自文本框)到 int(Weight 属性的类型)的默认 ValueConverter,并且文本框应该有 LostFocus 的默认更新源事件。
我是否正确指定了绑定?
我需要创建一个 ValueConverter,还是明确指定更新事件?
还有什么我做错了吗?
【问题讨论】:
标签: c# wpf data-binding