惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
博客园_首页
美团技术团队
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
J
Java Code Geeks
T
Tailwind CSS Blog
Jina AI
Jina AI
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - DotNet1010

.NET 6 的 docker 镜像可以有多小 Code UTF-8 Console GB2312 Linux 中文乱码 穿透式监管与CTP swagger 兼容 docker 转发 配置 rust 条件编译 Debug Release rust-must-know-crates-5ad8 100DayOfRust python C# DES 加密转换 The Little Book of Rust Books .NET 5 WPF 配置文件变动 程序自动刷新 (reloadOnChange) C# 高精度定时器 NET number values such as positive and negative infinity cannot be written as valid JSON C# 各种序列化方案比较 Python3 HDF5 中英文混合存储 websocket-per-message-compression Asp.net Core WebSocket 支持压缩 Redis 监控工具 期货行情查看客户端下载 完美解决windows10磁盘占用100%并出现卡顿、假死无反应 How to disable the unused macros warning? --rust 看阿里架构师是如何在高并发的情景下运筹帷幄
MVVM WPF 简化 类的开发
DotNet1010 · 2020-05-14 · via 博客园 - DotNet1010

https://www.cnblogs.com/li-peng/p/3169864.html

https://www.cnblogs.com/ColdJokeLife/archive/2013/05/30/3108112.html

//C#5.0 版本
public abstract class ObservableObject : INotifyPropertyChanged
 {
        public event PropertyChangedEventHandler PropertyChanged;
protected void SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
        {
            if (EqualityComparer<T>.Default.Equals(field, value))
            {
                return;
            }

            field = value;
            var handler = this.PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
}

public class Person : NotifyPropertyChangedEx
{
    private string name;

    public string Name
    {
       get { return name; }
       set { this.SetProperty(ref name, value); }
    }