我很难让我的 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/