有人能够解释一下在WPF中使用绑定时为什么需要实现INotifyPropertyChanged接口吗?我不实现这个接口也可以绑定属性吗?例如,我有下面这段代码:
在 XAML 中进行绑定
为什么在这种情况下需要使用INotifyPropertyChanged? 这不是我的代码。
public class StudentData : INotifyPropertyChanged
{
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
string _firstName = null;
public string StudentFirstName
{
get
{
return _firstName;
}
set
{
_firstName = value;
OnPropertyChanged("StudentFirstName");
}
}
}
在 XAML 中进行绑定
<TextBox Text="{Binding Path=StudentFirstName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Row="1"
Grid.Column="2"
VerticalAlignment="Center" />
这段代码来自.xaml.cs文件
StudentData _studentData = new StudentData { StudentFirstName = "John", StudentGradePointAverage = 3.5};
public MainWindow()
{
InitializeComponent();
this.DataContext = _studentData;
}
为什么在这种情况下需要使用INotifyPropertyChanged? 这不是我的代码。