c# - 重构 PropertyChangedEventHandler

标签 c# .net wpf

在我的 UI 代码中,我有很多具有相同基本框架的类:

  • 派生自 INotifyPropertyChanged
  • 包含以下代码:

    void NotifyPropertyChanged(String info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
    
    public event PropertyChangedEventHandler PropertyChanged;
    

这似乎是将一个类作为因素并从该类派生而不是 INotifyPropertyChanged 的​​绝好机会,但遗憾的是 C# 不支持多重继承,因此它不会真正发挥作用。关于如何重构此类代码的任何想法?

最佳答案

你不能把这段代码放到你父类(super class)的父类(super class)中吗?

  • 对象
    • 您的具体 NotifyPropertyChanged 类 <-- 在此处插入
      • 无论您的 View 模型继承自什么(并阻止您使用多重继承
        • 你的具体 View 模型
        • 另一个具体的 View 模型

大多数 MVVM 框架都为您提供了这样一个类。

不幸的是,由于围绕事件的访问规则,您不能在没有反射的情况下将其分解为扩展方法。

关于c# - 重构 PropertyChangedEventHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183707/

相关文章:

c# - .NET 4.0 中 .NET 4.5 的 Task.FromResult() 的等价物

c# - 使用 LINQ 优化两个列表中的比较

c# - 使用自定义本地化程序的 Asp .NET 5 数据注释本地化

.net - .NET多线程同步时钟与监视器

wpf - 触发器和动画

wpf - DDD 中领域层和表示层共享的业务逻辑应该放在哪里?

c# - Caliburn.Micro WPF : IoC. 获取 返回 Null

c# - 如何使用apache.commons.codec Base64在Java客户端中解密字符串(在.NET中加密)?

c# - 在 C#/.NET 中从 Apple/Objective-C 读取持久化数据

c# - 阅读 C# 中的介绍 - 如何防范?