C# 為什么說CM+Fody+HC是WPF開發的最強組合?

01

名詞解析

CM:Caliburn.Micro(簡稱CM)一經推出便備受推崇,作為一款MVVM開發模式的經典框架,越來越多的受到wpf開發者的青睞.我們看一下官方的描述:Caliburn是一個為Xaml平臺設計的小型但功能強大的框架。Micro實現了各種UI模式,用于解決實際問題。突出顯示的模式包括MVVM(表示模型)、MVP和MVC。目前CM框架還不不停的開發和迭代中,目前最新版本4.0.212,推出于2022年8月27日,已經可以支持.NET7。

源碼倉庫鏈接:https://github.com/Caliburn-Micro/Caliburn.Micro

學習文檔地址:https://caliburnmicro.com/documentation/

關注量☆:2.5K

引用:Nuget上搜索關鍵詞Caliburn,安裝

0740d15afb9472f7c098e5d1b2c7fdbd.png

Fody:向實現INotifyPropertyChanged的所有類添加屬性通知。

源碼倉庫鏈接:https://github.com/Fody/PropertyChanged

關注量☆:1.6K

引用:Nuget上搜索關鍵詞fody,安裝

9c0ae96e1ba2feb9732324ce5292879c.png

HC:HandyControl是一套WPF控件庫,它幾乎重寫了所有原生樣式,同時包含80余款自定義控件(正逐步增加)。

源碼倉庫鏈接:https://github.com/HandyOrg/HandyControl?

關注量☆:4.1K

引用:Nuget上搜索關鍵詞HandyControl,安裝

40831aa023d0d697d3604b181728e7f9.png

02


CM+Fody+HC 最強組合?

WPF開發中最流行的MVVM開發模式框架分別是Caliburn.Micro、Prism、MVVMLight,其中CM框架以其簡潔優雅的用法從中脫穎而出,越來越受到開發者的青睞;而fody則通過類標注的方式,增加一個? [AddINotifyPropertyChangedInterface]就能使得類中所有屬性變更后能自動通知界面更新,大大減少了代碼量;HandyControl則是一款非常優秀的WPF界面控件庫:主題窗口如下,

b04f2c348f48f203a0b3ce8360261ecd.png

本節就介紹這么多,后續章節會將三者結合起來開發一個實例項目,有興趣的讀者可以等待后續更新!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282836.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言邏輯運算符兩側運算對象,邏輯運算符兩側運算對象的數據類型是什么?...

邏輯運算符兩側運算對象的數據類型:可以是任何合法的類型數據;因為邏輯運算符兩邊的運算對象,最終都被轉換成bool值(邏輯值)操作。0、null轉換為false,而所有非零、非false、非null值轉換為true;然后進行運算。邏輯運算…

python-list:列表-元組-字符串

列表 “列表”是一個值,它包含多個字構成的序列。術語“列表值”指的是列表本身(它作為一個值,可以保存在變量中、傳遞給函數)--:按下標取值、切片、for循環、用于len()以及in not in等 list [aa,bb,cc,dd]是一個簡單的…

創建相似對象,就交給『工廠模式』吧

源碼&#xff1a; 源代碼C# 系列導航&#xff1a; 目錄 定義&#xff08;Factory Pattern&#xff09;&#xff1a; 用來創建目標對象的類&#xff0c;將相似對象的創建工作統一到一個類來完成。 一、簡單工廠模式&#xff1a; 代碼&#xff1a; /// <summary>/// 產品枚…

《ASP.NET Core 6框架揭秘》實例演示[26]:跟蹤應用接收的每一次請求

很多人可能對ASP.NET Core框架自身記錄的診斷日志并不關心&#xff0c;其實這些日志對糾錯排錯和性能監控提供了很有用的信息。如果需要創建一個APM&#xff08;Application Performance Management&#xff09;系統來監控ASP.NET Core應用處理請求的性能及出現的異常&#xff…

C語言循環為1404的循環,考試,求大神幫忙,C語言,小弟感激不盡

若有定義語句&#xff1a;int a10; double b3.14;&#xff0c;則表達式Aab值的類型是___________。  (1)A).char B)int C) double D)float(2)若有定義語句&#xff1a;int x12,y8,z;&#xff0c;在其后執行語句z0.9x/y;&#xff0c;則z的值為___________。A)1.9 B)1 C)2 D)2.…

js題集19

1.實現斐波那契數列。達到題目中的效果。不知道斐波那契數列是啥的請自行百度。 function fibonacci(){ } var ffibonacci(); for(var i0;i<10;i){ console.log(f()); } //output:按順序輸出斐波那契數列的數字。 eg&#xff1a; 1 2 3 5 8 13 21 34 55 89轉載于:https://ww…

阿里云Maven鏡像配置

2019獨角獸企業重金招聘Python工程師標準>>> <mirror><id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> …

c語言中有12個球,數學老師做不出來的一道邏輯推理題

同志們 那個球不一定輕啊正確的是平分三份 取兩分稱if(平)。。。。。。在未稱過的4球中取兩個放左邊 和標準的球稱(稱過的球一定標準)。。。。。。if(平)。。。。。。。。。。。。在兩次都未稱過的球中取一個 和標準的稱。。。。。。。。。。。。if(平)。。。。。。。。。。。。…

WPF 實現彈幕效果

WPF 實現彈幕效果控件名&#xff1a;BarrageExample作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;此篇代碼目的只…

js題集23

1.實現函數--defaultArguments 功能如下&#xff1a; function add(a,b) { return ab;}; var add_ defaultArguments(add,{b:9}); add_(10); // returns 19 add_(10,7); // returns 17 add_(); // returns NaN add_ defaultArguments(add_,{b:3, a:2}); add_(10); // returns…

iteritems()與items()

iteritems&#xff1a;以迭代器對象返回字典鍵值對 item:以列表形式返回字典鍵值對 >>> dic {a:3,c:1,b:2} >>> print dic.iteritems() <dictionary-itemiterator object at 0x7fa381599628> >>> print dic.items() [(a, 3), (c, 1), (b, 2)…

WPF效果第一百九十八篇之模塊對比

前面效果中分享了彩色馬蹄圖的效果和范圍內拖拽;這不大假期的時間反正沒啥事就在家擼代碼;今天又是LisBox實現的效果,看最終效果:1、剛開始一朋友說用DataGrid來實現.首先把行對象轉換成列對象,至于控制列的話,就后臺重新賦值對象來控制前臺.我是覺得太費勁直接放棄了;還是首選…

android 與后臺通信,Android后臺線程和UI線程通訊實例

本節向你展示如何在任務中發送數據給UI線程里的對象&#xff0c;這個特性允許你在后臺線程工作&#xff0c;完了在UI線程展示結果。在UI線程定義一個HandlerHandler是Android系統線程管理框架里的一部分。一個Handler對象接收消息&#xff0c;并且運行代碼來處理消息。正常情況…

saltstack的狀態文件

saltstack狀態文件設定&#xff1a;編輯/etc/salt/master&#xff0c;修改其中關于“設置文件的目錄”的設置&#xff1a;說明&#xff1a;注意語法格式&#xff0c;頂格/冒號/兩個空格state_top: top.sls # The state system uses a "top" file to tell the minions…

POJ 2798:二進制轉換十六進制

很郁悶&#xff0c;這道題一直WA&#xff0c;然而本地我測了好幾組數據都是通過的&#xff0c;上網找了網友陳宇龍加油加油加油的AC的代碼&#xff0c;http://blog.csdn.net/Since_natural_ran/article/details/51742149&#xff0c;發現沒有什么不同。。。很無語。。 #include…

【Shashlik.EventBus】.NET 事件總線,分布式事務最終一致性簡介

分布式事務、CAP定理、事件總線&#xff0c;在當前微服務、分布式、集群大行其道的架構前提下&#xff0c;是不可逃避的幾個關鍵字&#xff0c;在此不會過多闡述相關的理論知識。Shashlik.EventBus就是一個基于.NET6的開源事件總線解決方案&#xff0c;同時也是分布式事務最終一…

5個超實用的Visual Studio插件

工欲善其事&#xff0c;必先利其器,整理的一些我必裝的5款Visual Studio插件&#xff0c;希望你們能get到。01 CodeMaidCodeMaid快速整理代碼文件&#xff0c;規范你的代碼&#xff0c;提高代碼閱讀體驗。代碼自動對齊&#xff0c;格式化代碼&#xff08;ps&#xff1a;不用再按…

BZOJ1509: [NOI2003]逃學的小孩(樹的直徑)

Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1126 Solved: 567[Submit][Status][Discuss]Description Input 第一行是兩個整數N&#xff08;3 ? N ? 200000&#xff09;和M&#xff0c;分別表示居住點總數和街道總數。以下M行&#xff0c;每行給出一條街道的信息。第i1行…

Blazor University (52)依賴注入 —— 擁有多個依賴項:正確的方式

原文鏈接&#xff1a;https://blazor-university.com/dependency-injection/component-scoped-dependencies/owning-multiple-dependencies-the-right-way/擁有多個依賴項&#xff1a;正確的方式在上一節[1]中&#xff0c;我們看到了將多個擁有的依賴項注入組件的錯誤方法。本節…

Gradle 1.12用戶指南翻譯——第五十四章. 構建原生二進制文件

其他章節的翻譯請參見&#xff1a;http://blog.csdn.net/column/details/gradle-translation.html翻譯項目請關注Github上的地址&#xff1a;https://github.com/msdx/gradledoc本文翻譯所在分支&#xff1a;https://github.com/msdx/gradledoc/tree/1.12。直接瀏覽雙語版的文檔…