WPF入門教程系列二十四——DataGrid使用示例(1)

来源:https://www.cnblogs.com/chillsrc/archive/2023/05/14/17399098.html
-Advertisement-
Play Games

ABP框架 ABP是用於創建現代化Web應用程式的完整體繫結構和強大的基礎架構,以模塊化的方式進行開發,所有模塊以nuget包的方式提供,開箱即用,遵循最佳實踐和約定,提供SOLID開發經驗。 | 縮寫 | 英文 | 中文 | |--|--|--| | SRP | The Single Respon ...


WPF入門教程系列目錄

WPF入門教程系列二——Application介紹

WPF入門教程系列三——Application介紹(續)

WPF入門教程系列四——Dispatcher介紹

WPF入門教程系列五——Window 介紹

WPF入門教程系列十一——依賴屬性(一)

WPF入門教程系列十五——WPF中的數據綁定(一)

 

        WPF技術的主要特點是數據驅動UI,所以在使用WPF技術開發的過程中是以數據為核心的,WPF提供了數據綁定機制,當數據發生變化時,WPF會自動發出通知去更新UI。

       今天我們來學習.NET 7中的WPF裡面的DataGrid的有關知識。數據表格DataGrid是一個使用非常廣泛的控制項,不管是在Asp.Net中的網頁開發還是WinForm(WPF)應用程式開發都會頻繁使用。通過數據表格DataGrid可以靈活、方便、有效的顯示各種數據。自己翻看之前寫的DataGrid的示例,這個示例寫的有些簡單,沒有使用Command指令,沒有使用MVVM模式,現在看來有些欠缺。準備將這個DataGrid示例進行完善一下,併在示例中應用Command指令與MVVM模式。

       WPF控制項DataGrid 提供了一種靈活的方法,用於在行和列中顯示數據集合。 DataGrid包括用於托管自定義內容的內置列類型和模板列。內置行類型包括一個下拉詳細信息部分,可用於在單元格值下方顯示其他內容。

一、創建項目

1. 在Visual Studio 2022啟動界面中選擇“創建新項目”,如下圖。

 

2. Visual Studio 2022彈出的“創建新項目”的對話框中做如下選擇。如下圖。

  • 在最左邊的下拉框中,選擇 “C# ,如下圖中1處
  • 在中間的下拉框中,選擇 “所有平臺”,如下圖2處。
  • 在最右邊的下拉框中,選擇“桌面”,如下圖3處。
  • 在下圖中4處,選擇“WPF應用程式”模板,點擊“下一步”按鈕。

    

4.在彈出的“配置新項目”的對話框中,如下圖,在“項目名稱”輸入框中,輸入“WpfGridDemo.NET7”。然後使用滑鼠點擊“下一步”按鈕。

 

5. 在彈出的“其他信息”的對話框,如下圖。在“框架”下拉框中,選擇“NET 7.0(標準期限支持)”。其他值選擇預設值即可。然後使用滑鼠點擊“創建”按鈕。

 

二、創建實體

       首先進行準備工作,先創建實體,我們使用的是省市縣區的示例數據,這個數據網上比較豐富,可以方便找到。

1. 在Visual Studio 2022的“解決方案資源管理器”中,使用滑鼠右鍵單擊“WpfGridDemo.NET7”項目,在彈出菜單中選擇“添加-->新建文件夾”。如下圖。

 

2. 在Visual Studio 2022的“解決方案資源管理器”中,將“新文件夾”改名為 “Entitys”,然後使用滑鼠右鍵單擊“Entitys”文件夾,在彈出菜單中選擇“添加--> 類”。 在“添加新項”對話框中將類命名為 Area,然後選擇“添加”。

3. 在Visual Studio 2022的“解決方案資源管理器”中,使用滑鼠雙擊打開剛纔創建的Area.cs文件,添加如下代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WpfGridDemo.NET7.Entitys
{
    public class Area
    {
        public int Id { get; set; }

        [StringLength(10)]
        public string Code { get; set; }     

        [StringLength(30)]
       public string Name { get; set; }

 
        [StringLength(10)]

        public string CityCode { get; set; }
        public DateTime Created { get; set; }
        public DateTime Updated { get; set; }

    }
}

 

 4.重得執行第2,3步,在Visual Studio 2022創建City與Province類,這兩個類的代碼如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WpfGridDemo.NET7.Entitys
{
    public class City
    {
        public int Id { get; set; }
        [StringLength(10)]
        public string Code { get; set; }
 
        [StringLength(30)]
        public string Name { get; set; }
 
        [StringLength(10)]
        public string ProvinceCode { get; set; }
    }
}
 


 

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WpfGridDemo.NET7.Entitys
{
    public class Province
    {
        public int Id { get; set; }
        [StringLength(10)]
        public string Code { get; set; }
 
        [StringLength(30)]
        public string Name { get; set; }

    }

}

5  使用NuGet下載最新版的Entity Framework Core 7。在解決方案資源管理器中——>在項目WpfGridDemo.NET7中的依賴項上滑鼠右鍵單擊——>彈出一個菜單,選中“管理NuGet程式包”,如下圖。

 

6. 在打開的NuGet包管理界面的中選擇“瀏覽”標簽頁,在搜索框中輸入“Entity”,找到最新版本Entity Framework Core,點擊安裝。如下圖。

 7.  Visual Studio 2022 開始安裝 EntityFrameworkCore 7.0.3,會彈出安裝確認界面,點擊“OK”按鈕。如下圖。

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

8.安裝完成之後,如下圖。

9. 在Visual Studio 2022的解決方案資源管理器中,使用滑鼠右鍵點擊“WpfGridDemo.NET7”項目,在彈出菜單中選擇“添加-->類”,在彈出的“添加新項”對話框中,選擇添加 “GridDbContext”類,併在中定義實體對應的DbSet,以應用Code First 數據遷移。添加以下代碼

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using WpfGridDemo.NET7.Entitys;

 
namespace WpfGridDemo.NET7
{
    public class GridDbContext : DbContext
    {
        public GridDbContext(DbContextOptions<GridDbContext> options)
 
               : base(options)
        {
 
        }

        public DbSet<Area> Area { get; set; }
        public DbSet<City> City { get; set; }
        public DbSet<Province> Province { get; set; }
 
    }
}

10.在Visual Studio 2017中的資源管理器中找到appsettings.json文件,用滑鼠雙擊打開,在文件中添加一個連接字元串,代碼如下。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add></add>
    </appSettings>
    <connectionStrings>

        <add name="GridDbContext" connectionString="Server=.;Database=EFCoreDemo;Trusted_Connection=True;
Encrypt=False;TrustServerCertificate=True;MultipleActiveResultSets=true"
/> </connectionStrings> </configuration>
11.從Visual Studio 2022的菜單中選擇“工具->NuGet包管理器器—>程式包管理器控制台”菜單。

  12. 在PMC中,預設項目選擇EntityframeworkCore對應的項目後。輸入以下命令:Add-Migration AddEntityCitys,創建遷移。

  13. 在上面的命令執行完畢之後,創建成功後,會在Migrations文件夾下創建時間_AddEntityCitys格式的類文件,這些代碼是基於DbContext指定的模型。

  14.在程式包管理器控制台,輸入Update-Database,回車執行遷移。執行成功後,以上三個步驟,我在前面的文章中已經多次寫過了,這裡就簡單寫一下。

 15. 在SQL Server Management Studio中查看資料庫,Province、Area、City三個表創建成功。至於具體的數據,請在網上查找。

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 配置文件的兩種寫法:properties 和 yml 2. 項目中存在多個配置文件,可以使用 spring.profiles.active 屬性來切換使用哪個配置文件。 3. 自定義的一些配置屬性(配置項),如何讀取呢?可以在程式中通過 @Value 或者 @ConfigurationPr... ...
  • 歡迎來到我們的系列博客《Python360全景》!在這個系列中,我們將帶領你從Python的基礎知識開始,一步步深入到高級話題,幫助你掌握這門強大而靈活的編程語法。無論你是編程新手,還是有一定基礎的開發者,這個系列都將提供你需要的知識和技能。這是我們的第一篇文章,讓我們從最基礎的開始:如何在你的電腦... ...
  • 1、什麼是Spring Cloud ? Spring cloud 流應用程式啟動器是基於 Spring Boot 的 Spring 集成應用程式,提供與外部系統的集成。Spring cloud Task,一個生命周期短暫的微服務框架,用於快速構建執行有限數據處理的應用程式。 Spring Cloud ...
  • 線程阻塞概述 在生活中,最常見的阻塞現象是公路上汽車的堵塞。汽車在公路上快速行駛,如果前方交通受阻,就只好停下來等待,等到公路順暢,才能恢復行駛。 線程在運行中也會因為某些原因而阻塞。所有處於阻塞狀態的線程的共同特征:放棄 CPU,暫停運行,只有等到導致阻塞的原因消除,才能恢復運行,或者被其他線程中 ...
  • 介紹線程 線程是系統調度的最小單元,一個進程可以包含多個線程,線程是負責執行二進位指令的。 每個線程有自己的程式計數器、棧(Stack)、寄存器(Register)、本地存儲(Thread Local)等,但是會和進程內其他線程共用文件描述符、虛擬地址空間等。 對於任何一個進程來講,即便我們沒有主動 ...
  • pandas進行數據整理的意義在於,它是數據分析、數據科學和機器學習的前置步驟。 通過數據整理可以提前瞭解數據的概要,缺失值、重覆值等情況,為後續的分析和建模提供更為可靠的數據基礎。 本篇主要介紹利用pandas進行數據整理的各種方法。 1. 數據概要 獲取數據概要信息可以幫助我們瞭解數據的基本情況 ...
  • 偶數分頻:無論是通過D觸發器還是計數器實現,這類分頻都是最容易得到的,並且占空比容易控制在50%。對於D觸發器實現偶數分頻來說,分頻數只能得2^n,其餘分頻數只能由計數器法等其他方法實現。除此以外,隨著分頻的數目不斷增大,通過D觸發器實現觸發器數目會增多,在電路設計的過程中應當考慮面積因素。對於計數... ...
  • EF命令行工具 migrate.exe 進行Code First更新資料庫,6.3+使用ef6.exe 使用EF的Code First遷移可以用於從Visual Studio內部更新資料庫,但也可通過命令行工具 migrate.exe 進行執行。 如果項目已經更新到伺服器,後面的更新資料庫分為兩種辦 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...