循序漸進介紹基於CommunityToolkit.Mvvm 和HandyControl的WPF應用端開發(1)

来源:https://www.cnblogs.com/wuhuacong/archive/2023/09/08/17687598.html
-Advertisement-
Play Games

在我們的SqlSugar的開發框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基於UniApp+Vue+ThorUI的移動前端幾個前端處理,基本上覆蓋了我們日常的應用模式了,本篇隨筆進一步介紹前端應用的領域,研究集成WPF的應用端,循序漸進介紹基於CommunityToo... ...


在我們的SqlSugar的開發框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基於UniApp+Vue+ThorUI的移動前端幾個前端處理,基本上覆蓋了我們日常的應用模式了,本篇隨筆進一步介紹前端應用的領域,研究集成WPF的應用端,循序漸進介紹基於CommunityToolkit.Mvvm 和HandyControl的WPF應用端開發。

1、基於CommunityToolkit.Mvvm開發WPF應用

MVVM是Model-View-ViewModel的簡寫。類似於目前比較流行的MVC、MVP設計模式,主要目的是為了分離視圖(View)和模型(Model)的耦合。
它是一種極度優秀的設計模式,但並非框架級別的東西,由MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構。

 MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點
1. 低耦合:視圖(View)可以獨立於Model變化和修改,一個ViewModel可以綁定到不同的View上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。
2. 可重用性:可以把一些視圖邏輯放在一個ViewModel裡面,讓很多View重用這段視圖邏輯。
3. 獨立開發:開發人員可以專註於業務邏輯和數據的開發(ViewModel),設計人員可以專註於頁面設計,使用Expression Blend可以很容易設計界面並生成xml代碼。
4. 可測試:界面素來是比較難於測試的,而現在測試可以針對ViewModel來寫。

CommunityToolkit.Mvvm  (又名 MVVM 工具包,以前名為 Microsoft.Toolkit.Mvvm) 是一個現代、快速且模塊化的 MVVM 庫。 它是 .NET 社區工具包的一部分,圍繞以下原則構建:

  • 平臺和運行時獨立 - .NET Standard 2.0、 .NET Standard 2.1 和 .NET 6
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 京東茅臺搶購腳本可以分為以下幾部分,具體實現步驟如下: 登錄京東賬號 首先需要登錄京東賬號。一個簡單的方式是使用Python的 selenium 庫。在使用 selenium 庫前,需要安裝 selenium 庫和對應的瀏覽器驅動。 示例代碼如下所示: from selenium import we ...
  • # It can explain what ? 如下是解釋器要解釋的主體: - 加減乘除等運算,3+4/9+6*8 - 摩爾斯電碼 - 正則表達式 - El表達式 - OGNL表達式 - 小明是北京人 - 小紅是一名售貨員 - 部門領導下發一則通知 - ... # How explain ? 解釋器 ...
  • # ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/98edff345fb44c9ca30237fa7958f6f8~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1920&h=1080&s=72 ...
  • 大家好,我是 god23bin,在日常開發中,我們經常需要處理日期和時間,日期和時間可以說是一定會用到的,現在總結下 Java 中日期與時間的基本概念與一些常用的用法。 ...
  • centos7.9版本 1.下載FTP離線安裝包: http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64) 選擇最後一個 vsftpd-3.0.2-28.el7.x86_64.rpm 2.檢查是否已經安裝了vsftp rpm ...
  • 上次我們聊到 CLI 的領域交互模式。在領域交互模式中,可能存在多層次的子命令。在使用過程中如果全評記憶的話,命令少還好,多了真心記不住。頻繁 --help 也是個很麻煩的事情。如果每次按 'tab' 鍵就可以提示或補齊命令是不是很方便呢。這一節我們就來說說 'autocommplete' 如何實現... ...
  • 脫殼修複是指在進行加殼保護後的二進位程式脫殼操作後,由於加殼操作的不同,有些程式的導入表可能會受到影響,導致脫殼後程式無法正常運行。因此,需要進行修複操作,將脫殼前的導入表覆蓋到脫殼後的程式中,以使程式恢復正常運行。一般情況下,導入表被分為IAT(Import Address Table,導入地址表... ...
  • [toc] # 一、爬蟲對象-豆瓣電影短評 您好!我是[@馬哥python說](https://www.cnblogs.com/mashukui/),一名10年程式猿。 今天分享一期爬蟲案例,爬取的目標是:豆瓣上任意一部電影的短評(註意:是短評,不是影評!),以《熱烈》這部電影為例: ![爬取目標] ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...