|
ReoGrid 是 C# 編寫(xiě)的.NET 電子表格控件(類(lèi)似 Excel)。支持單元格合并,邊框樣式,圖案背景顏色,數(shù)據(jù)格式,凍結(jié),公式,宏和腳本執(zhí)行,表格事件等。支持 Winform\WPF。 ReoGrid.Mvvm 是針對(duì) ReoGrid.WPF 編寫(xiě)的一個(gè)開(kāi)源類(lèi)庫(kù),用于方便地將控件綁定到模型,從而實(shí)現(xiàn)模型(Model)和視圖(View)的分離,適用于MVVM模式的開(kāi)發(fā)。
項(xiàng)目地址:https://github.com/IUpdatable/ReoGrid.Mvvm,歡迎star
下面以一個(gè)圖書(shū)信息的簡(jiǎn)單項(xiàng)目演示如何使用 演示效果如圖
1. 創(chuàng)建一個(gè) WPF 項(xiàng)目2. NuGet 安裝 ReoGrid.MvvmInstall-Package ReoGrid.Mvvm
3. 創(chuàng)建一個(gè)圖書(shū)的模型(Model)1 [WorksheetAttribute(Title = "Books")] 2 public class Book: IRecordModel 3 { 4 [ColumnHeader(Index = 10, IsVisible = false)] 5 public int Id { get; set; } 6 7 [ColumnHeader(Index = 20, Text = "Name", Width = 150)] 8 public string Title { get; set; } 9 10 [ColumnHeader(Index = 30)] 11 public string Author { get; set; } 12 13 [ColumnHeader(Index = 35, Text = "Type")] 14 public BindingType BindingType { get; set; } 15 16 [ColumnHeader(Index = 36, Text = "OnSale")] 17 public bool IsOnSale { get; set; } 18 19 [NumberFormat(DecimalPlaces = 2)] 20 [ColumnHeader(Index = 40)] 21 public decimal Price { get; set; } 22 23 [DateTimeFormat( CultureName = "en-US")] 24 [ColumnHeader(Index = 45, Text = "Publish Date", Width = 200)] 25 public DateTime Pubdate { get; set; } 26 27 public int RowIndex { get; set; } 28 }
(1) Model 必須實(shí)現(xiàn)
(2) 可選,不指定該特性,那么就用Model類(lèi)的類(lèi)名作為工作表名稱(chēng)。
(3)
(4)
4. 在ViewModel中修改:4.1 創(chuàng)建兩個(gè)成員變量1 private ObservableCollection<IRecordModel> _Books; 2 private WorksheetModel _WorksheetModel;
4.2 初始化1 _Books = new ObservableCollection<IRecordModel>(); 2 for (int i = 0; i < 10; i++) 3 { 4 Book book = new Book(); 5 book.Id = i; 6 book.Title = string.Format("Title {0}", i); 7 book.Author = string.Format("Author {0}", i); 8 book.BindingType = BindingType.Hardback; 9 book.IsOnSale = true; 10 book.Price = (decimal)(i * 10.1); 11 book.Pubdate = DateTime.Now; 12 _Books.Add(book); 13 } 14 // 變量 reoGridControl 是 ReoGridControl 的控件元素實(shí)例 15 _WorksheetModel = new WorksheetModel(reoGridControl, typeof(Book), _Books); 16 //如果需要在輸入值前檢查變量的有效性,那么就實(shí)現(xiàn)該函數(shù) 17 _WorksheetModel.OnBeforeChangeRecord += OnBeforeChangeRecord;
4.3 在
|
|
|
來(lái)自: 頭號(hào)碼甲 > 《待分類(lèi)》