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方法?

INotifyPropertyChanged没有报告在我的派生类中发生变化

ObservableCollection不会在项中的属性发生变化时通知。它只会在列表本身发生变化时通知你,例如如果一个项目被添加或删除。

查看这里的更多信息:ObservableCollection不注意当Item在它的变化(即使与INotifyPropertyChanged)