c# - 数据绑定(bind)到文本框不起作用

标签 c# wpf xaml data-binding

我很难让我的 WPF 正确使用数据绑定(bind)。在 XAML 中,我有以下内容:

....
<TextBox Name="txt_FirstName" Text="{Binding Path=currentApplication.FirstName, UpdateSourceTrigger=PropertyChanged}" />
....

我有以下 CS 代码:

namespace WPF1
{
  public partial class MainWindow : Window
  {
    personalApp currentApplication = new personalApp ();

    public MainWindow()
    {
      InitializeComponent();
    }

  }
}

引用以下两个类:

class personalApp : INotifyPropertyChanged
{
  private Person person = new Person();

  public string FirstName
  {
    get { return person.FirstName; }
    set
    {
      person.FirstName = value;
      this.OnPropertyChanged("FirstName");
    }
  }

  public event PropertyChangedEventHandler PropertyChanged;

  void OnPropertyChanged(string propName)
  {
    if (this.PropertyChanged != null)
      this.PropertyChanged(
      this, new PropertyChangedEventArgs(propName));
   }

}

class Person
{
  private string firstName = "";

  get { return firstName; }
  set { FirstName = value; }
}

我在代码中暂停它并逐步检查,但是当我更新应用程序中的txt_FirstName时,它似乎从未设置firstName对象。

我哪里出错了?

最佳答案

您需要更新您的 XAML 绑定(bind),并使用 TextBox 设置窗口的 DataContext

namespace WPF1
{
  public partial class MainWindow : Window
  {
    personalApp currentApplication = new personalApp ();

    public MainWindow()
    {
      InitializeComponent();
      this.DataContext = currentApplication;
    }
  }
}

更新 XAML:

<TextBox Name="txt_FirstName" Text="{Binding FirstName, UpdateSourceTrigger=PropertyChanged}" />

关于c# - 数据绑定(bind)到文本框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117621/

相关文章:

c# - 在图像查看和编辑 WPF 上共享冲突

c# - 可以在代码中使用 Blend SDK 类,但不能使用 XAML (Prism Desktop)

c# - 如何在临时文件中的 C# Windows 应用程序中保存用户名?

c# - .NET/C# 和 Java 的高性能数学库

c# - 关闭影子属性生成

c# - 在 MVVM 中绑定(bind)时出现 WPF 线程绑定(bind)访问错误

c# - 如何为Windows Phone制作动态ARC圆?

c# - 与此 C# 片段等效的 UnityScript

wpf - 在 WPF 中使用另一个控件作为不透明蒙版?

c# - 使用 c# wpf 放大 imageView 图像