gpt4 book ai didi

c# - INotifyPropertyChange ~ PropertyChanged 当属性是一个集合并且一个新项目被添加到集合中时不触发

转载 作者:太空狗 更新时间:2023-10-29 23:56:16 25 4
gpt4 key购买 nike

我有一个实现 INotifyPropertyChanged 接口(interface)的类。该类的某些属性属于 List 类型。例如:

public List<string> Answers
{
get { return _answers; }
set
{
_answers = value;
onPropertyChanged("Answers")
}
}

...

private void onPropertyChanged(string propertyName)
{
if(this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

如果我将一个新的 List 分配给 Answer,那么 PropertyChanged 事件会按预期触发;但是如果我使用 List Add 方法将字符串字符串添加到 Answer 列表,则不会触发 PropertyChanged 事件。

我正在考虑向我的类添加一个 AddAnswer() 方法,该方法将处理调用列表的 Add 方法并从那里调用 onPropertyChanged(),但这是正确的方法吗?有更优雅的方式吗?

干杯,KT

最佳答案

你应该公开一个 ObservableCollection<string> , 它实现了 INotifyCollectionChange接口(interface)来引发自己的更改事件。

您还应该删除属性 setter ; Collection properties should be read only .

你不应该提出 PropertyChanged集合内容更改时的事件。

关于c# - INotifyPropertyChange ~ PropertyChanged 当属性是一个集合并且一个新项目被添加到集合中时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991776/

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