翻譯|使用教程|編輯:龔雪|2020-02-18 13:33:05.007|閱讀 350 次
概述:DevExpress WPF Data Grid和TreeList的最新版本引入新的編輯模式——Edit Entire Row,本文將為大家展示如何進行編輯整個行操作,歡迎下載最新版體驗哦!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v19.2完整版 DevExpress v19.2漢化資源獲取
通過DevExpress WPF Controls,您能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。DevExpress WPF Data Grid和TreeList的最新版本引入新的編輯模式——Edit Entire Row。
在默認模式下,通過in-place編輯器進行的更改將立即發布到數據源。與默認模式不同,Edit Entire Row要求用戶按下Update按鈕來將更改顯式發布到您的數據源:
要激活Edit Entire Row模式,請使用 / 屬性。
當您在一行中更改單元格值時,WPF Data Grid / TreeList凍結UI。除非記錄或取消更改,否則不能離開已編輯的行。
要發布所做的更改,請單擊Update按鈕;如果單擊Cancel按鈕,更改將被放棄。
在示例中,Data Grid綁定到實體框架:
public MainWindow() { InitializeComponent(); var context = new IssuesContext(); grid.ItemsSource = context.Issues.ToArray(); } public class IssuesContext : DbContext { // ... }
當要更改網格值時,僅更改內存中的副本,而不更改數據庫中的實際數據。若要保存更改并攔截可能的數據庫錯誤,請處理事件,并在DataContext上顯式調用SaveChanges:
<dxg:TableView ShowUpdateRowButtons="OnCellEditorOpen" ValidateRow="TableView_ValidateRow" /> void TableView_ValidateRow(object sender, GridRowValidationEventArgs e) { var issue = (Issue)e.Row; using(var context = new IssuesContext()) { var result = context.Issues.SingleOrDefault(b => b.Id == issue.Id); if(result != null) { result.Subject = issue.Subject; result.Priority = issue.Priority; result.Votes = issue.Votes; result.Priority = issue.Priority; context.SaveChanges(); } } }
示例中的數據庫不允許您保存帶有空主題的行:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<Issue>() .Property(x => x.Subject) .IsRequired(); }
如果您嘗試指定一個空主題,則Data Grid將允許您更正值或單擊Cancel按鈕以返回以前的值。
DevExpress v19.2全新發布,歡迎下載最新版體驗哦~
DevExpress技術交流群:540330292 歡迎一起進群討論
掃描關注DevExpress中文網微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網