最新要闻
- 全球快看:满满维生素!可口可乐innocent果汁大促:三瓶券后不到15元
- 天天热门:长绒棉亲肤透气 浪莎男士中筒袜子5双21.55元
- 每日讯息!2023元旦档预售总票房破1亿元:《阿凡达2:水之道》第一
- 《王者荣耀》铠荣耀典藏皮肤今晚上线!三形态特效帅炸
- 头条:游戏火爆全球 海外营收过半!米哈游获评全国文化企业30强
- 环球速读:史上财富损失第一人:马斯克财产缩水破人类记录
- 即时:官旗抄底:新疆大红乌苏啤酒500ml*12罐整箱59.9元
- 环球即时:沙特球队官宣C罗加盟 本人回应:是时候来亚洲分享经验了
- 一加11R外观泄露:双曲面屏、后置三摄
- 当前观点:联想YOGA新款笔记本曝光:双屏显示、支持360度翻转
- 天天快资讯:0糖、0脂肪!Nevercoffee咖啡:10盒到手16.41元
- 天天快资讯丨兴泉铁路全线开通:8个老区终于坐上火车
- 【世界报资讯】电脑上没有“锤子大爆炸”:自己做一个!
- 环球快播:辽宁吉林多地现不明飞行物:外星飞船?还是韩国制造?
- 天天速讯:女子因上厕所未在工位被领导打:网友集体愤怒
- 天天日报丨知情人士:李子柒短期内或不考虑复出 业内看好重回顶流
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
WPF 实现通知属性的N种方式
我对通知属性有种执念
- 要兼容低版本
- 写起来短小精悍
- 最好无依赖
- 哪有那么好的事情!
必备代码
所有衍生的方式都将基于此操作,你可以封装到类中继承
【资料图】
public event PropertyChangedEventHandler PropertyChanged;protected void RaisePropertyChanged(string propertyName){PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));}
原始方式
这种方式,
- 你必须要接受一个不需要的后台变量
- 硬编码的名字写法你也可以使用nameof进行操作,但需要注意的是nameof是编译时的动作,不要让混淆器来捣乱
private int myVar;public int MyProperty{ get { return myVar; } set { myVar = value; //通知绑定系统这个名字的属性有变化 RaisePropertyChanged("MyProperty"); }}
使用[CallerMemberName]
隐藏属性名字的主动编写
在RaisePropertyChanged
的属性上加上[CallerMemberName]
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
写法就变成了
private int myVar;public int MyProperty{ get { return myVar; } set { myVar = value; //在编译时将会为第一个参数自动传入 "MyProperty" RaisePropertyChanged(); //如果没有.NET版本没有[CallerMemberName],也可以使用表达式树来操作,这个操作没有硬编码,是运行时操作 // RaisePropertyChanged(()=>MyProperty); }}
进一步干掉后台变量
通过基类将[CallerMemberName]的名字保存到后台统一字典来进行变量值的管理这也是我目前使用的方法
public int MyProperty{ get { return GetProperty(); } set { SetProperty(value); }}
优化成一行
public int MyProperty { get => GetProperty(); set => SetProperty(value); }
使用Emit动态生成
你的属性这样写那个virtual表明了它的派生类可以覆盖它
public class MyViewModel : ViewModelBase{ public virtual int MyProperty { get; set; } }
现在由Emit为你动态创建一个派生类在实例化后,返回给你基类,看似什么都没有发生,你的属性却得到了通知能力动态创建的代码类似下方所示:
public class NullViewModel_EXTEND : MyViewModel{private int myVar;public override int MyProperty{get { return myVar; }set{myVar = value; RaisePropertyChanged("MyProperty");}}}
由于是动态创建的,可能调试会有些麻烦此操作和js的代理一样,可以为原有对象注入拦截代码,只不过c#这个操作有亿点点麻烦实现参考: https://www.codewrecks.com/post/old/2008/08/implement-inotifypropertychanged-with-dynamic-code-generation/
使用后台线程轮训检查
这是我觉得最离谱的实现,但它能跑,怕什么!地址: https://github.com/michael-damatov/shuriken看起来还挺流畅
还有一种没太具体了解的方式
在maui早期mvu模式演示上见过猜测这个State的参数里面也包含了CallerMemberName然后重写ToString,重写隐式转换来达到使用起来像正常属性的操作
public class MyPage : View {readonly State clickCount = new State (1);public MyPage() {Body = () => new VStack {new Text (() => $"Click Count: {clickCount}"),new Button("Update Text", () => {clickCount.Value++;}};}}
下面2种属于无需动手的操作
使用Fody/PropertyChanged插件
此插件会在你的代码编译后对属性进行自动通知注入你只需要像正常编写属性一样
使用Source Generator自动生成
与Fody类似,可以在编译时为你自动生成通知代码
-
P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior
1 论文简介论文题目:P3Depth:MonocularDepthEstimationwithaPiecewisePlanarityPriorPaper地址:paperCode
来源: WPF 实现通知属性的N种方式
P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior
全球滚动:从USB存储设备启动树莓派
全球快看:满满维生素!可口可乐innocent果汁大促:三瓶券后不到15元
天天热门:长绒棉亲肤透气 浪莎男士中筒袜子5双21.55元
每日讯息!2023元旦档预售总票房破1亿元:《阿凡达2:水之道》第一
《王者荣耀》铠荣耀典藏皮肤今晚上线!三形态特效帅炸
头条:游戏火爆全球 海外营收过半!米哈游获评全国文化企业30强
快播:Unreal学习笔记1-打印输出
环球速读:史上财富损失第一人:马斯克财产缩水破人类记录
即时:官旗抄底:新疆大红乌苏啤酒500ml*12罐整箱59.9元
环球即时:沙特球队官宣C罗加盟 本人回应:是时候来亚洲分享经验了
一加11R外观泄露:双曲面屏、后置三摄
MySQL报错解决
当前观点:联想YOGA新款笔记本曝光:双屏显示、支持360度翻转
天天快资讯:0糖、0脂肪!Nevercoffee咖啡:10盒到手16.41元
天天快资讯丨兴泉铁路全线开通:8个老区终于坐上火车
【世界报资讯】电脑上没有“锤子大爆炸”:自己做一个!
环球快播:辽宁吉林多地现不明飞行物:外星飞船?还是韩国制造?
天天速讯:女子因上厕所未在工位被领导打:网友集体愤怒
天天日报丨知情人士:李子柒短期内或不考虑复出 业内看好重回顶流
速递!奥迪最帅量产电车!RS e-tron GT上市:146.88万秒杀保时捷
网友在苹果官方旗舰店买iPhone 13:取消订单却不给退款
快讯:三大件不再是重点 调查显示:84.5%消费者更看重汽车智能化
环球微动态丨ColorOS 13 2023年Q1适配计划出炉:10款机型喜提正式版
环球新动态:2022年总结与反思
全球热文:显卡清库存告一段落 价格已经到底:AMD、NVIDIA不会再便宜
【全球新要闻】RTX 4090游戏本狂野!一脚踢翻桌面RTX 3090
有你吗?我国千兆宽带用户达到8707万户 同比增长157%
全球最新:联想SmartPaper墨水平板曝光:10.3寸大屏、23ms低延迟
天天即时:国产游戏《大多数》称《九霄大陆》是盗版 把自己破解了
【天天时快讯】HDU 6801 Game on a Circle 题解 (推式子,多项式)
LeetCode-400. 第N位数字
全球观热点:红黑树起源以及插入解析
世界简讯:“最牛00后”:成都122岁长寿老人朱郑氏去世 家人100多名
全球快看点丨女子圣诞节送男友PS5:送礼前先把自己感动哭了
【全球速看料】比亚迪发布公告:终止拆分半导体业务上市
世界热门:新能源车国补即将取消 零跑表态:零跑C01不涨价
【全球独家】复习Stream流,函数式接口,方法引用
【天天新视野】最贵国产电动车高合HiPHi X宣发闹乌龙:零百加速45分钟
全球信息:杀死110公斤牛 北半球最凶猛的鸟金雕复仇人类:缝了40针
热资讯!软嫩多汁 拒绝合成肉:大希地整切牛排55.8元/斤好价
新能源车二手车:又红火起来了
全球热消息:腾讯今年股价曾腰斩 累计回购超9000万股 耗资超337亿港元
环球快消息!特色功能(锐捷智慧教室)
RX 7900 XTX温度烧到110度 AMD终于回应了:请联系客服支持
全球热议:盗版电影画质越发高得可怕 英国正版组织怒出手:嫌疑人落网
苹果允许安装第三方商店 但用户愿意吗?
【独家】RTX 4070 Ti官方偷跑!跑分都亮出来了
东方甄选直播一周年:股价翻800% 腾讯亏惨了
Android Emulator Container 配置
京东自营次日达 抗原检测试剂盒4.9元/份:15分钟出值
每日焦点!百度“萝卜快跑”首批获准在京开展全无人自动驾驶测试
当前观察:洗鞋机竟成了香饽饽!市场一片繁荣
2000年来首次发生!苹果2022年第四季度未发布任何新Mac产品
当前视讯!扬州高邮湖大桥几十辆车相撞 事故原因又是团雾
当前滚动:亲测有效! Studio One 6 V6.0.1 音乐编曲工具 含win/mac版
stm32读写sd卡代码解析和调试总结
前沿热点:Django路由层
全球微头条丨湖南汽车商会:汽车平台大涨价 4S店给汽车之家引流费一年最低23万
焦点热门:与热爱同行 18年魅族用户已是曹操出行CEO:希望有天把Flyme放进车机
环球关注:比亚迪仰望汽车来了!搭载最具颠覆性的尖端技术
天天快讯:太烂没人看?《阿凡达2》全球票房破11亿美元:中国内地贡献排第二
全球热头条丨零百6.9秒、纯电续航100km:坦克500 PHEV亮相广州车展
即时焦点:org.quartz.JobPersistenceException: Couldn't retrieve trigger: invalid stre
焦点热讯:MyBatis分页实现
世界百事通!现代细胞计数分析平台丨OMIQ简介
全球新动态:世界第一国际象棋手3分钟比赛迟到2分半 仅用22秒取胜
今日聚焦!奖金收入143万美元!Faker断层领跑韩国职业选手总奖金榜
跨年冷空气来了!跨年夜最冷大城市排行榜出炉:哈尔滨嗷嗷冷
世界快报:微信支付分大升级:订单信息一目了然 再不必担心扣费不明
全球百事通!卡梅隆R级《蜘蛛侠》电影图曝光:原定小李子主演
世界看热讯:亲测有效! Wondershare UniConverterV14.1.7 Wondershare PDFelement Professiona
今日快讯:基于局部直方图相关算法的近似优化和提速。
焦点速讯:Java集合快速失败和安全失败机制
全球新消息丨Python教程:如何创建多线程?
Django与数据库连接
每日观察!三星手机工业设计要焕然一新了!前奔驰中国首席大牛加盟:全权操刀
世界短讯!全新红旗H6亮相2022广州国际车展:压垮合资中型轿车又一力作
B站跨年晚会节目单官宣:邓紫棋首唱《三体》片尾曲《面壁者》
焦点热讯:Kafka的终极UI工具丨Offset Explorer功能简介
提前加满 2023开年油价第一涨:预计每升多花0.21元
员工超54万!京东为一线员工薪酬福利开支超330亿元
搭配紫光展锐国产芯:微软新Surface RT预计明年夏季推出
MyBatis-ResultMap
环球视讯!魅友人物纪录片《我有一个朋友》首映 80后CEO龚昕:我的青春是魅族
世界实时:搭乘猎鹰9号火箭 韩国首个月球探测器成功入轨:位列世界第七
【新视野】《王者荣耀》2023年首个新版本定了:新英雄莱西全员免费得
焦点观察:3.0T V6发动机卖成白菜价 长城皮卡山海炮上市:22.88万起
AIRIOT答疑第3期|如何使用物联网平台的可视化组态引擎?
鲁大师12月新机性能/流畅榜发布:小米直接包揽性能榜前三!
【环球时快讯】面包车行驶中车内起火 突然爆炸车顶掀飞数米高
【环球新要闻】大礼包抄底价:良品铺子坚果礼盒1440g装49元
80后宝妈辞职后做沙滩代写:月入过万
JJJJ车厘子有多大?JJJJ车厘子价格是多少?
狱警十七在第几集出现的?狱警十七为什么杀小朵?
锰钢是什么材质的钢材?锰钢板价格多少钱一吨?
泳镜防雾剂怎么使用?游泳镜防雾剂对眼睛的伤害有哪些?
四大满贯赛事是哪些?四大满贯赛事场地类型包括哪些?
西元年是什么意思?西元年和公元年换算表