【问题标题】:New to WPF Data BindingWPF 数据绑定的新手
【发布时间】: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.Weightint

接下来,我尝试将一个文本框绑定到这个属性:

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

应用程序编译并运行,但是当我将数字文本放入文本框,然后将焦点移动到另一个文本框时,我希望看到 Pilot.Weightsetter 被调用(我有一个断点)。没有。

我认为应该有一个从 String(来自文本框)到 int(Weight 属性的类型)的默认 ValueConverter,并且文本框应该有 LostFocus 的默认更新源事件。

我是否正确指定了绑定?
我需要创建一个 ValueConverter,还是明确指定更新事件?
还有什么我做错了吗?

【问题讨论】:

    标签: c# wpf data-binding


    【解决方案1】:

    你需要绑定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}" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2018-05-27
      • 2011-06-08
      相关资源
      最近更新 更多