问候, 我有一些类型CMessage的对象列表。 CMessage可以如下所示:
public ROWGUID {get;set;}
public ObservableCollection<CAnswer> Answers
{
get {return _Answer;}
set
{_Answer=value
RaisePropertyChanged("Answer");
}
}
每个属性都有RaiseNotifyPropertyChanged方法,它是INotifyPropertyChanged接口的实现。 重点是:
为什么没有为该消息执行RaisePropertyChanged?它应该!
答案 0 :(得分:2)
你这样做:
// get some Message from OC<Message> collection Message
var message = Messages.First();
message.Answers.Add(new CAnswer { Text = "HURRDURR" }); // add an answer
但是你的CMessage只会在你执行此操作时调用RaisePropertyChanged
var message = Messages.First();
var answers = new ObservableCollection<CAnswer>();
answers.Add(new CAnswer { Text = "LOL" });
message.Answers = answers; // triggers here
第一个引发Answers集合的CollectionChanged事件。第二个更改Answers集合,这将导致您的set
方法触发,这会引发CMessage类的PropertyChanged事件。