INotifyPropertyChanged没有报告在我的派生类中发生变化
本文关键字:变化 派生 我的 报告 INotifyPropertyChanged | 更新日期: 2023-09-27 18:05:09
我有这个基类:
public class MyFileInfo : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _file;
private int _bytesSent;
public MyFileInfo(string file)
{
}
public string File
{
get { return _file; }
set { _file = value; }
}
public int BytesSent
{
get { return _bytesSent; }
set
{
_bytesSent = value;
OnPropertyChanged("BytesSent");
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
和派生类:
public class MyFile : MyFileInfo
{
public MyFile(MyFileInfo myFileInfo)
}
this.File = pcapInfo.myFileInfo;
this.BytesSent = pcapInfo.BytesSent;
}
public DoWork()
{
// here BytesSent is changing
}
{
好的,我有基类和派生类。在派生类中,我的属性BytesSent
改变了,但我的UI不变。这是我的收藏:
private ObservableCollection<MyFile> files{ get; set; }
也许我需要在派生类中定义OnPropertyChanged
方法?
ObservableCollection不会在项中的属性发生变化时通知。它只会在列表本身发生变化时通知你,例如如果一个项目被添加或删除。
查看这里的更多信息:ObservableCollection不注意当Item在它的变化(即使与INotifyPropertyChanged)