gpt4 book ai didi

c# - DataBinding 到 TextBox 不起作用

转载 作者:行者123 更新时间:2023-11-30 20:52:13 24 4
gpt4 key购买 nike

我很难让我的 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# - DataBinding 到 TextBox 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com