翻譯|使用教程|編輯:龔雪|2025-09-11 10:21:20.480|閱讀 12 次
概述:本文主要介紹如何使用DevExpress WPF Grid控件將數據網格綁定到實體框架核心源,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產品,還是以數據為中心的商業智能產品,都能通過DevExpress WPF控件來實現。
本文檔展示了如何將GridControl綁定到實體框架(EF)核心源。
DevExpress技術交流群11:749942875 歡迎一起進群討論
跳轉到Tools | NuGet Package Manager | Manage NuGet Packages for Solution。
在“Browse”選項卡中,搜索 ‘microsoft sqlserver’ 關鍵字,并為當前項目安裝Microsoft.EntityFrameworkCore.Sqlite包,選擇與應用程序所針對的.NET版本兼容的包版本,接受許可協議。
出于本教程的目的,使用Demo Center中包含的Countries.db數據庫。
創建Data文件夾,并從以下文件夾中添加Countriesdb數據庫:C:\Users\Public\Public Documents\DevExpress Demos 25.1\Components\Data
下面的代碼片段演示了Countries表的數據模型,Key屬性指定標識Country實體的屬性。
C#
using System; using System.ComponentModel.DataAnnotations; public class CountryObject { [Key] public int Id { get; set; } public string Country { get; set; } public string Currency { get; set; } public string Capital { get; set; } public int Population { get; set; } public string Languages { get; set; } }
為Countries表創建要給數據上下文,從派生數據上下文類,并為數據集合公開屬性。
C#
using Microsoft.EntityFrameworkCore; public partial class CountriesContext : DbContext { public CountriesContext() : base() { } protected override void OnConfiguring( DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite( "Data Source=file:Data/Countries.db"); base.OnConfiguring(optionsBuilder); } public virtual DbSet<CountryObject> Countries { get; set; } }
從類派生視圖模型:
C#
using DevExpress.Mvvm; using System.Collections.Generic; public class ViewModel : ViewModelBase { CountriesContext countriesContext; public ICollection<CountryObject> Countries { get => GetValue<ICollection<CountryObject>>(); private set => SetValue(value); } public ViewModel() { countriesContext = new CountriesContext(); } }
重新生成項目來編譯生成的類。
將GridControl添加到項目中。
打開GridControl的并調用。
1. 選擇 CountriesContext源。
2. 選擇CountryObject表。
3. 您可以選擇任何數據綁定模型,出于本教程的目的,選擇適合大型數據庫的 Instant Feedback Mode。
4. 確保Key Propery選項設置為Id。
5. 選擇View Model將代碼添加到視圖模型中。
單擊Select a Data Context,選擇ViewModel類并單擊OK。
啟用Set selected class as the data context選項并單擊Finish。
Items Source Wizard(項目源向導)在ViewModel中生成數據綁定代碼,并在XAML中指定數據上下文和GridControl選項:
XAML
<dx:ThemedWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:local="clr-namespace:EntityFrameworkCore" x:Class="EntityFrameworkCore.MainWindow" Title="MainWindow" Height="800" Width="1000"> <dx:ThemedWindow.DataContext> <local:ViewModel/> </dx:ThemedWindow.DataContext> <Grid> <dxg:GridControl x:Name="grid" AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" ItemsSource="{Binding ItemsSource}"> <dxg:GridControl.TotalSummary> <dxg:GridSummaryItem Alignment="Right" SummaryType="Count"/> </dxg:GridControl.TotalSummary> <dxg:GridControl.View> <dxg:TableView ShowFixedTotalSummary="True"/> </dxg:GridControl.View> <dxg:GridColumn FieldName="Id" IsSmart="True" ReadOnly="True"/> <dxg:GridColumn FieldName="Country" IsSmart="True"/> <dxg:GridColumn FieldName="Currency" IsSmart="True"/> <dxg:GridColumn FieldName="Capital" IsSmart="True"/> <dxg:GridColumn FieldName="Population" IsSmart="True"/> <dxg:GridColumn FieldName="Languages" IsSmart="True"/> </dxg:GridControl> </Grid> </dx:ThemedWindow>
C#
public class ViewModel : ViewModelBase { CountriesContext countriesContext; public ICollection<CountryObject> Countries { get => GetValue<ICollection<CountryObject>>(); private set => SetValue(value); } public ViewModel() { countriesContext = new CountriesContext(); } EntityInstantFeedbackSource _ItemsSource; public EntityInstantFeedbackSource ItemsSource { get { if (_ItemsSource == null) { _ItemsSource = new EntityInstantFeedbackSource { KeyExpression = nameof(CountryObject.Id) }; _ItemsSource.GetQueryable += (sender, e) => { var context = new CountriesContext(); e.QueryableSource = context.Countries.AsNoTracking(); }; } return _ItemsSource; } } }
運行應用程序。
更多產品資訊及授權,歡迎來電咨詢:023-68661681
慧都是?家?業數字化解決?案公司,專注于軟件、?油與?業領域,以深?的業務理解和?業經驗,幫助企業實現智能化轉型與持續競爭優勢。
慧都是DevExpress的中國區的合作伙伴,DevExpress作為用戶界面領域的優秀產品,幫助企業高效構建權限管理、數據可視化(如網格/圖表/儀表盤)、跨平臺系統(WinForms/ASP.NET/.NET MAUI)及行業定制解決方案,加速開發并強化交互體驗。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網