微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 从一个实现INotifyPropertyChanged的基类继承?

我有这个BaseClass:
public class Baseviewmodel : INotifyPropertyChanged
{
    protected void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

和另一个类:

public class SchemaDifferenceviewmodel : Baseviewmodel
{
    private string firstSchemaToCompare;

    public string FirstSchemaToCompare
    {
        get { return firstSchemaToCompare; }
        set
        {
            firstSchemaToCompare = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this,new PropertyChangedEventArgs("FirstSchemaToCompare"));
                //StartCommand.RaiseCanExecuteChanged();
            }
        }
    }

PropertyChanged在这里(2次),红色下划线,它说:

Error   1   The event Baseviewmodel.PropertyChanged' can only appear on the left hand side of += or -= (except when used from within the type 'SchemaDifferenceFinder.viewmodel.Baseviewmodel')

我做错了什么?我只将PropertyChangedEvent扫描到一个新类:Baseviewmodel ..

解决方法

您不能在声明它的类之外引发事件,使用基类中的方法来引发它(使OnPropertyChanged受保护).

原文地址:https://www.jb51.cc/csharp/91953.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐