它返回的是IEnumerable而不是IEnumerable,这让它看起来就像是一个C# 1的接口,而不是泛型。...属性变更通知 属性变更通知在很多情况下都很有用,不过更常见的是与MVVM设计模式相关联。...由于这个错误,没有人可以实现带有批量更新支持的INotifyCollectionChanged,除非他们100%确定集合类不会被用在WPF中。 因此,我的建议是不要试图从头开始创建自定义集合类。...文档里没有提到这些,因为它没有定义一个子对象是否被认为是“对象内容”的一部分。我个人偏好让IsChanged包含子对象的变化,并为数据存储添加单独的IsChangedLocal属性。...你花在弥补缺口上的时间,比如不一致的命名约定、缺少的特性和不正确实现的接口,最终都会获得回报。 关于作者 ?
C#是开发桌面应用程序的强大工具,特别是借助.NET Framework和.NET Core。...本文将深入探讨C#中两种主流的桌面应用程序开发框架:Windows Forms和Windows Presentation Foundation (WPF),以及它们的使用场景和最佳实践。...控件(Controls):文本框、按钮、列表框等用户可操作的界面元素。布局(Layout):控件在窗口中的排列方式。事件(Events):用户与控件交互时触发的操作。...)WPF是用于构建Windows客户端应用程序的现代UI框架,使用XAML作为其界面定义语言。...; }}桌面应用程序的高级主题MVVM架构MVVM(Model-View-ViewModel)是一种设计模式,用于分离UI(视图)和业务逻辑(模型),并通过视图模型进行交互。
最常见的事件用途是窗体编程,在Windows窗体应用程序和WPF应用程序中。 当在窗体中点击按钮,移动鼠标等事件时,相应的后台程序会收到通知,再执行代码。...sender:代表源,即触发该事件的控件。 e:代表事件参数,即触发该事件后,事件为被触发的委托,传递了一些参数,以方便委托在处理数据时,更便捷。 根据这个原理,我们可以分析出很多东西。...比如,当控件DataGrid的事件被触发时,只要查看一下sender的真实类型,就可以知道,到底是DataGrid触发的事件,还是DataGridRow或DataGridCell触发的了。...比如WPF虽然支持事件驱动,但MVVM在WPF下的表现堪称完美,所以WPF下的事件几乎没有人用了。...再比如前端的Angularjs等框架,提供了优质的MVVM使用效果,也让新的前端设计师逐渐放弃了事件。 所以,事件在未来的编程中,很可能将不在有那么重要的地位了。
01 简介 之前也写过好多篇CM框架相关的项目实战文章,比如: C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战...(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF...mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅 但是可能这些都是把一个综合性的项目分多个部分分别讲述的...02重要知识点 CM框架的配置和启动; CM框架自带ioc容器SimpleContainer用法; MVVM开发模式; 事件聚合器EventAggregator进行事件发布和订阅; 属性通知: ① CM...} [AddINotifyPropertyChangedInterface]:需要引用第三方库PropertyChanged.Fody,加上之后类里面的属性变更后会自动通知界面,无需再一个个单独触发
MVVM 简介 MVVM源于微软的软件开发架构模式。MVVM的开发基于事件驱动,实现UI层和逻辑层的分离,从而使UI设计人员和程序员各施其职。...此外,我们将检查方法的签名并正确构造ActionMessage参数。可以关闭或自定义此机制。您甚至可以更改或添加不同控件的约定。...Screens 和Conductors Screen、ScreenConductor和ScreenCollection模式支持基于模型的活动或当前项目跟踪,强制执行屏幕生命周期,并在应用程序中优雅地关闭或取消关闭...只需向它传递一个VM实例,它就会找到视图,必要时将其包装在窗口中,应用您配置的所有约定并显示窗口。...PropertyChangedBase 和BindableCollection 如果没有INotifyPropertyChanged的基本实现,什么自尊的WPF/SL框架可以实现?
WPF:MVVM的由来与属性绑定的过程 https://www.cnblogs.com/zhuiyine/p/18372384 本文介绍了WPF中的MVVM设计模式及其数据绑定过程。...MVVM模式有助于分离业务逻辑和用户界面,便于单元测试和维护。文章通过一个简单的加法实例,讲解了MVVM的实现步骤,包括数据属性和命令属性的创建与绑定。...详细分析了双向绑定的实现机制,解释了INotifyPropertyChanged接口的作用。文中还讨论了命令属性的执行时机问题,强调了用户交互后命令才被触发执行的原理。...,通过查看源码解释了关键类和方法的实现,并分析了Socket关闭异常的问题,最后总结了Fleck源码中使用的设计模式和异常处理方式。...VirtualStorageLibrary 简介:内存中树结构的 .NET 解决方案 hanachiru/RapidEnum:用于 C#/.NET 的带有 SourceGenerator 的枚举实用程序
WPF设计之初响应式设计的概念并不流行,那时候大部分网页设计师都按着宽度960像素的标准设计。...UWP提供了AdaptiveTrigger这个状态触发器,它以MinWindowWidth和MinWindowHeight未条件,根据页面宽度或高度进入设定好的不同状态(通常来说只使用MinWindowWidth...在 Auto 模式下,导航视图会进行自适应,在窗口狭窄时为 LeftMinimal,接下来为 LeftCompact,随后在窗口变宽时为 Left。 ?...--some xmal--> 这种时候MVVM的优势就体现出来了,因为VIEW和VIEWMODEL解耦了,VIEW随便换,而且整个UI显示隐藏说不定比多个小模块独自改变性能更好...ViewBox ViewBox可以根据自身大小放大或缩小它的Content元素,某些情况下它是WPF和UWP平台的终极响应式设计解决方案,因为WPF/UWP元素都是矢量元素所以大部分元素都可以无损缩放(
而 ControlTemplate 定义了控件的视觉结构和布局,包括控件的可视元素、布局容器、触发器等。...WPF是微软推出的用于创建Windows应用程序的技术,它在设计上非常适合MVVM模式。WPF提供了强大的数据绑定机制和命令系统,使得开发者可以更轻松地实现MVVM架构。...外观:Window通常具有标题栏、边框和窗口控制按钮(最小化、最大化、关闭等),可以通过样式和模板进行自定义。而Page通常没有标题栏和边框,它的外观完全由其内容决定。...生命周期:Window具有自己的生命周期,当窗口关闭时,应用程序通常会退出。而Page的生命周期通常由导航框架管理,当页面从导航框架中移除时,它可能会被销毁或缓存。...Uno Platform:Uno Platform是一个开源的、跨平台的用户界面框架,它允许开发人员使用C#和XAML来构建跨平台的应用程序。
常见被违反的规范 今年升级一个核心代码从很久以前的代码改写过来的软件,各种不符合C#代码规范的代码让我感到难以维护;去年系统工程师退休前留给我们的一个代码更是让我受到会心一击。...我使用C#多年来见到过很多不规范的代码,于是试着参考书中的规范,列出其中一些来常见的错误以及一些问题。...2.6 事件 要用受保护的虚方法来触发事件。 要让触发事件的受保护的方法带一个参数,该参数的类型为事件参数类,该参数的名字应该为e。...例如,在窗口关闭之前发生的close事件应该命名为Closing,而在窗口关闭之后发生的应该命名为Closed。...一些想法,关于XAML元素的命名 我不记得有在哪里见过XAML上元素命名的规范(只看到XamlName语法),总之就是要符合C#的的通用命名规范。
前言 案例一 站长分享过 眾尋 大佬的一篇 WPF 简易新手引导 一文,新手引导的效果挺不错的,如下图: 该文给出的代码未使用 MVVM 的开发方式,提示框使用的用户控件、蒙版窗体样式与后台代码未分离...案例二 开源项目 AIStudio.Wpf.Controls,它的新手引导效果如下: 此开源项目也有参考上文(WPF 简易新手引导),并且重构为 MVVM 版本,方便绑定使用。...添加Nuget包2:Prism.DryIoc 使用该包,主要是使用 Prism 封装的一些 MVVM、IOC 功能,方便协助开发。...i 命名空间 主要用此命名空间下的触发器,事件触发属性更改。...GuideControl:引导控件,用于目标控件无法获取到自己的窗体这种(即无法获取在窗体中的位置),比如您开发的程序为第三方程序插件这种,上面的代码即是使用此引导控件实现的效果。
能检测,但仍有未测出的注入方法。...WPF/C#:在DataGrid中显示选择框 https://www.cnblogs.com/mingupupu/p/18258249 该文章介绍了在WPF中的DataGrid中添加选择框列的实现方法。...第二种方法通过GDI+动态绘制系统名称,利用配置文件中的系统名称信息,在窗口的Paint事件中绘制。这种方法较为灵活,能根据文字长度自动调整字体大小。...WPF/C#:显示分组数据的两种方式 https://www.cnblogs.com/mingupupu/p/18256035 本文介绍了WPF数据分组的两种实现方案: ICollectionView和...WPF/C#:数据绑定到方法 https://www.cnblogs.com/mingupupu/p/18260193 本文介绍了WPF中如何通过ObjectDataProvider类实现数据绑定到方法的功能
23.说出使用WPF而不是Windows窗体的一些优点使用 WPF 代替 Windows 窗体的优点: XAML 使更容易的创建和编辑 GUI,并允许在设计模式 (XAML) 和后台代码(C#、VB.NET...使用硬件加速来绘制 GUI,以获得更好的性能。 24.WPF中的命令设计模式和ICommand是什么?ICommand 是 MVVM 的核心组件。...冻结的 Freezable 也可以跨线程共享,而未冻结的 Freezable 则不能。 尽管 Freezable 类有许多应用程序,但 WPF中的大多数 Freezable 对象都与图形子系统相关。...26.什么是MVVM?MVVM(Model View ViewModel)是一个在WPF中制作应用的框架。 MVVM 与 MVC 框架相同。 它是一个三层架构,我们可以使用 MVVM 进行松耦合开发。...进行命中测试相对来源 (FindAncestor) 28.在WPF应用程序集中添加新文件时,Page和Window有什么区别?页面旨在用于导航应用程序(通常带有后退和前进按钮,例如浏览器)。
备注 MVU模式 .NET MAUI对传统上认为的带有 C# Markup and Comet的MVU模式具有最完整的支持....它使用与 UWP/WinUI相同的XAML方言和对象模型,这使得它在XAML和C# 100% 兼容。Avalonia和MAUI都偏离了过去的XAML版本,与WPF或UWP/WinUI都不兼容。...Uno Platform试图覆盖整个UWP的对外暴露的API(API-surface),这包含大量的API。整个API 是自动生成的,其中许多功能未实现stubs。...这意味着大多数非 UI的API不可用,如果在应用中使用它们,则会引发异常。这确实会在开发过程中产生一些问题,但编译器会显示正在使用哪些未实现的API。...此外,使用MVVM是通过反射绑定把控件绑定到viewmodel上,相比于编译后的代码,反射绑定本来就慢一些。
客户端开发 五、服务器端开发 Succinctly Azure 函数教程 零、简介 一、基础 二、创建函数应用 三、元数据、BLOB 和计时器触发器 四、使用 HTTP 触发器 Succinctly...的一般结论 九、附录 Succinctly MongoDB3 教程 零、简介 一、MongoDB 概述 二、MongoDB 安装 三、MongoShell 四、操纵文件 五、数据检索 六、C# 基础...MongoDB 七、# 中的数据处理 八、在 C# 中插入数据 九、使用 C# 查找(查询)数据 十、C# 中的二进制数据(文件处理) 十一、备份和恢复 十二、最后的话 Succinctly MonoGame...九、存储桶管理 十、键值管理 十一、坚持 DHT 十二、异步实现的注意事项 十三、基本的 TCP 子网协议 十四、RPC 错误处理和延迟驱逐 十五、整合:演示 十六、未落实的事情 十七、总结 Succinctly...教程 零、简介 一、WPF 起源 二、WPF 内部 三、WPF 控件概览 四、WPF 应用 五、WPF 和 MVVM 六、WPF 命令 七、高级 WPF 概念 八、WPF 控件样式和模板 九、WPF
内存泄露原因 内存泄露主要原因分析: 静态引用 未注销的事件绑定 非托管代码资源使用等 对于静态对象尽量小或者不用,非托管资源可通过手动Dispose来释放。...WPF 从 INotifyPropertyChanged 界面使用 DependencyProperties 类的内置通知。...运行一个包含的控件的属性是数据绑定到的 WPF 应用程序DependencyObject对象。 该对象的生存期是超过控件的生存期。...运行使用树视图控件或控件派生于的 WPF 应用程序,选择器类。 将控件注册为控制中的键盘焦点的内部通知在KeyboardNavigation类。 该应用程序创建这些控件的很多。...日志输出 对于调试信息的输出,我的做法是在窗体应用程序中附带一个控制台窗口,输出调试信息,给一个类,方便大家: using System; using System.Collections.Generic
MVVM Light Toolkit - 该工具包的主要目的是加速在WPF,Silverlight,Windows Store(RT)和Windows Phone中创建和开发MVVM应用程序 Catel...- Catel是一个专注于MVVM(WPF,Silverlight,Windows Phone和WinRT)和MVC(ASP.NET MVC)的应用程序开发平台。...ReactiveUI - 集成了反向扩展(Rx)框架的.NET MVVM框架,使开发人员能够使用WPF,Windows Store Apps,WP8或Xamarin构建优雅,可测试的应用程序....Prism - 一个跨平台的桌面和移动MVVM开发框架。 WPF Application Framework (WAF) - 一个轻量级框架,可帮助您创建良好的结构化WPF应用程序。...FsPickler -一个用于.NET的快速多格式消息序列化程序 Migrant - 快速灵活的序列化框架可用于未装饰的类。
Winform MVVM 在.Net中(主要应用于WPF、Silverlight、WP7) Prism - Brian Lagunas微软产品经理,微软MVP,一个跨平台的桌面和移动MVVM开发框架,开源...Catel - Catel是一个专注于MVVM(WPF,Silverlight,Windows Phone和WinRT)和MVC(ASP.NET MVC)的应用程序开发平台。...域名解析速度 掌握SEO 确保网站是可以被索引的: robots.txt,Robtots 标签 确保网页是可以被索引的:确保爬虫可以看到所有的内容、使用描述性的锚文本的网页 擅长标签编写:带有 H1 标签...、关键词放 URL 中、加粗文字、Descripiton 标签、图片文件名、ALT 属性带有关键词 ......欺骗 ClickJacking(点击劫持) 透明iframe HTTP头——X-Frame-Options 图片掩盖接口 暴力破解 DDOS 文件安全 配置文件、备份文件暴露读取、未授权修改、未授权上传
记一次 .NET某酒业业务系统 崩溃分析 https://www.cnblogs.com/huangxincheng/p/18291452 本文例子介绍了一位朋友的程序总是关闭时崩溃,通过使用WinDbg...WPF/C#:在WPF中如何实现依赖注入 https://www.cnblogs.com/mingupupu/p/18295546 本文通过WPF Gallery项目学习依赖注入的概念与在WPF中实现依赖注入的方法...触发事件使用触发方法,并订阅或取消订阅事件。...WTM的项目中EFCore如何适配人大金仓数据库 https://www.cnblogs.com/wdw984/p/18289632 WalkingTec.Mvvm框架于2013年开发,旨在提高开发效率和统一代码风格...代码示例展示了如何在XAML中使用该组件,并通过C#代码实现按钮的点击和长按事件。最终,通过抛出RoutedEvent实现长按事件的定义和触发。
WPF/C#:程序关闭的三种模式 https://www.cnblogs.com/mingupupu/p/18243656 本文介绍了WPF应用程序的ShutdownMode枚举类型,包括OnLastWindowClose...、OnMainWindowClose和OnExplicitShutdown三种关闭方式,并通过示例代码展示了如何在MainWindow中实现这些关闭模式。...wpfui:一个开源免费具有现代化设计趋势的WPF控件库 https://www.cnblogs.com/mingupupu/p/18245521 wpfui是一个开源免费的WPF界面库,提供现代化设计体验...作者通过自己的使用经验详细介绍了该库的各个部分,包括Wpf.Ui.Demo.Console、Wpf.Ui.Demo.Mvvm、Wpf.Ui.Demo.Simple和Wpf.Ui.Gallery。...生成提交消息 生成拉取请求描述 解释提交历史 从 Visual Studio 创建带有链接工作项的拉取请求 (Azure DevOps) Visual Studio 2022 - 17.10 性能增强
的开源框架,包括中台Admin(基于.NET 8.0)、DncZeus(基于.NET 7和Vue.js)、WalkingTec.Mvvm框架(基于.net core)、OpenAuth.Net(集成多种技术...应用模型,它在编译时创建依赖图并剪裁未使用代码,但对于反射和动态泛型实例化有限制。...文章提出了使用USB摄像头和改造的人脸识别程序来优化考勤系统,包括无人值守时自动关闭摄像头、记录考勤时间、同步人脸信息和取消传统的消息弹窗交互。...WPF性能优化:形状(Shape)、几何图形(Geometry)和图画(Drawing)的使用 https://www.cnblogs.com/czwy/p/18000108 本文讲述了WPF中绘图的核心概念...最后,通过XAML元素定义资源字典,方便在窗口中重用资源。
领取专属 10元无门槛券
手把手带您无忧上云