【C# .Net Framework】派生类使用PropertyChanged.Fody

WPF MVVM中的View-Model广泛使用INotifyPropertyChanged接口(INPC)。View-Model中,如果有大量的属性需要实现INPC,直接编码是件非常痛苦和乏味的事情。使用PropertyChanged.Fody可以轻松解决问题。

PropertyChanged.Fody 支持具有继承关系的类

基类BaseClass实现INotifyPropertyChanged

public class BaseClass : INotifyPropertyChanged
{
        public  string BasePropertyString { get; set; }
        public  DateTime? BasePropertyNullableDateTime { get; set; }


        public event PropertyChangedEventHandler PropertyChanged;

        public virtual void Clear()
        {
            BasePropertyString = null;
            BasePropertyNullableDateTime = null;
        }
}

派生类DerivedClass继承自BaseClass

public class DerivedClass: BaseClass
{
    public float? DerivedClassPropertyNullableFloat { get; set; }

    public override void Clear()
    {
        base.Clear();
        DerivedClassPropertyNullableFloat = null;
    }
}

测试

static void Main(string[] args)
{
    DerivedClass dc = new DerivedClass();
    dc.PropertyChanged += Dc_PropertyChanged;

    dc.DerivedClassPropertyNullableFloat = 69.3f;
            

    dc.BasePropertyString = "文本信息";
    dc.BasePropertyNullableDateTime = DateTime.Now;

    Console.WriteLine("---------Clear()-----------");
    dc.Clear();

    Console.ReadLine();	
}

static void Dc_PropertyChanged(object sender,
                System.ComponentModel.PropertyChangedEventArgs e)
{
    Console.WriteLine($"{e.PropertyName} Changed");
}

测试输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值