在很多地方需要用上INotifyPropertyChanged的接口,MVVM模式,List等集合都会用到。

通常我们使用

  protected void OnChange(PropertyChangedEventArgs args) => PropertyChanged?.Invoke(this, args);

        private OutString _Text;

        public OutString Text
{
get => _Text;
set
{
_Text = value;
OnChange(new PropertyChangedEventArgs("Text"));
}
}

不过可以 使用特性来减少代码量

CallerMemberName可以代替手工输入名称

 public class Test:INotifyPropertyChanged
{
protected void OnPropertyChanged([CallerMemberName] string name="")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
private BitmapImage i;
public BitmapImage Image { get=>i; set { i = value; OnPropertyChanged(); } } public event PropertyChangedEventHandler PropertyChanged;
}

WPF INotifyPropertyChanged 通过特性减少代码量的更多相关文章

  1. 前端程序员的蜕变——JS的 event 对象属性、使用实例、兼容性处理(极大提高代码效率、减少代码量)

    下面讨论一下 js 中的 Event 对象,主要从以下三个方面详细的描述(点击标题可跳转到对应部分): 1.什么是event 2.怎么用event,用他该注意什么,几个简单实际应用 3.event在不 ...

  2. 想减少代码量,快设置一个有感知的 Aware Spring Bean

    摘要:正常情况下,Spring 中的 Bean 对 Spring 是无感知的,Spring 框架提供了这种扩展能力,能让一个 bean 成为有感知的. 本文分享自华为云社区<有感知的 Aware ...

  3. Java 8 中的方法引用,轻松减少代码量,提升可读性!

    1. 引言 Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提高了可读性. 方法引用是lambda表达式的一种特 ...

  4. 一些减少代码量、提高开发效率的利器(Java)

    Spring Boot mybatis-plus代码生成器和自带CRUD接口 lombok 库: Apache Commons & guava AOP Java8: stream & ...

  5. 新兵易学,老兵易用----C++(C++11的学习整理---如何减少代码量,加强代码的可读性)

    1.auto类型推导 auto推导最大的优势就是在拥有初始化表达式的复杂类型变量声明时简化代码. auto第二个优势就是免去了程序员在一些类型声明时的麻烦,或者避免一些在类型声明时的错误. auto第 ...

  6. springboot 使用 @data 插件,减少代码量

    一.idea 安装 lombok 插件 二.重启 idea 三.添加依赖 <dependency> <groupId>org.projectlombok</groupId ...

  7. 让你的代码量减少3倍!使用kotlin开发Android(一)

    让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了.得到的好处 ...

  8. 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数

    本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...

  9. 编写高质量代码改善C#程序的157个建议——建议55:利用定制特性减少可序列化的字段

    建议55:利用定制特性减少可序列化的字段 特性(attribute)可以声明式地为代码中的目标元素添加注释.运行时可以通过查询这些托管块中的元数据信息,达到改变目标元素运行时行为的目的.System. ...

随机推荐

  1. vs2010 出现“未能将 ProteusDebugEngine 调试器附加到计算机”

    vs2010 打开项目时出现如下图错误,解决方法: 1.查看C:\Progream Files下的Internet Explorer文件夹还在不在,不在则会出现此问题: 2.可以右键项目属性-调试-勾 ...

  2. Gitlab 社区版安装部署和维护指南

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gitlab 升级到了 ...

  3. 29.OGNL与ValueStack(VS)-总结OGNL[重点]

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html OGNL是Object Graphic Navigation Languag ...

  4. 提交iframe页面中的表单

    function getIframeDoc(id){             var doc;            if (document.all){//IE                 do ...

  5. Cardboard Talk02 Accelerometer

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Android studio 3.0.0 | Cardboard 1.0 在深入讨论具体实现之前,有必要了解一下Andro ...

  6. ICG游戏:尼姆游戏异或解法的证明

    描述: 尼姆博奕(Nimm Game),有n堆石子,每堆石子有若干石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限.取走最后石子的人获胜. 标准解法: 判断: 先计算先手是必胜还是 ...

  7. 用 RPM 打包软件,第 1 部分

    http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/ RPM(Red Hat Package Manager ...

  8. Laravel 使用 seeder 使用要点

    一.关于 DB use DB; 再使用 DB::table(database.table)->get(); 二.关于 ERROR 1366 (HY000): Incorrect string v ...

  9. [Training Video - 1] [Selenium Basics] [Xpath Selenium]

    FirePath Press F12, you will see :

  10. 使用c语言实现在linux下的openssl客户端和服务器端编程

    使用c语言实现在linux下的openssl客户端和服务器端编程 摘自:https://www.cnblogs.com/etangyushan/p/3679457.html 前几天组长让我实现一个使用 ...