我有一个ComboBox,它的ItemSource绑定到一个名为PersonsList的Person类型的ObservableCollection。此ComboBox上的DisplayMemberPath被设置为FullName (它只返回名字+姓氏)
Person中存储了各种信息,如名字、姓氏、电话号码、地址等。
现在,当我在PersonsList中更新person时,我会更新相应的数据字段并调用OnPropertyChanged("PersonsList")。现在,当我返回查看该ComboBox时,我的问题就出现了。如果我更新了一个人的名字或姓氏,它不会在这里更新。但是,当我单击应该更新的人时,它会正确显示新更新的名字/姓氏。
这里有两张图片来理解我的意思:https://imgur.com/a/fP6apoX
最后,下面是我的XAML代码:
ComboBox ItemsSource="{Binding PersonsList, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="FullName"/>发布于 2019-07-10 00:01:25
您需要修改Person类,如下所示,因为与View映射的属性属于Person类,因此需要由Person类触发属性changed事件
public class Person : INotifyPropertyChanged
{
/// <summary>
/// Property Changed Event Handler
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
// Create the OnPropertyChanged method to raise the event
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
private String _FirstName;
public String FirstName {
get {
return _FirstName;
}
set {
_FirstName = value;
OnPropertyChanged(nameof(FirstName));
}
}
private String _LastName;
public String LastName
{
get
{
return _LastName;
}
set
{
_LastName = value;
OnPropertyChanged(nameof(LastName));
}
}
private String _FullName;
public String FullName
{
get
{
return _FullName;
}
set
{
_FullName = value;
OnPropertyChanged(nameof(FullName));
}
}
}https://stackoverflow.com/questions/56956273
复制相似问题